- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
查询功能从 0.9.9 到 1.0.0b1 的变化让我有些心痛。我有一个使用 column_property
的 group_by 子句。
在 0.9.9 中,生成的查询通过再次实际计算值来重现 GROUP BY 中的计算值。在 1.0.0b1 中,计算包含在 anon_1 中,MSSQL 不允许您对计算字段的命名值进行分组。
是否有某种方法可以在不需要特定版本的情况下恢复到旧行为?
以下代码在 0.9.9 中生成以下 SQL:
SELECT
count(cdr_extended.[UniqueID]) AS [CallCount],
sum(cdr_extended.[Duration]) AS [TotalSeconds],
ext_map.[FName] + ' ' + ext_map.[LName] AS anon_1
FROM cdr_extended, ext_map
WHERE
(ext_map.exten = cdr_extended.[Extension]
OR ext_map.prev_exten = cdr_extended.[Extension])
AND cdr_extended.[StartTime] > '2015-01-01'
AND cdr_extended.[Extension] IN ('8297')
GROUP BY ext_map.[FName] + ' ' + ext_map.[LName]
DESC
但是,在 1.0.0 中,它会生成以下代码:
SELECT
count(cdr_extended.[UniqueID]) AS [CallCount],
sum(cdr_extended.[Duration]) AS [TotalSeconds],
ext_map.[FName] + ' ' + ext_map.[LName] AS anon_1
FROM cdr_extended, ext_map
WHERE
(ext_map.exten = cdr_extended.[Extension]
OR ext_map.prev_exten = cdr_extended.[Extension])
AND cdr_extended.[StartTime] > '2015-01-01'
AND cdr_extended.[Extension] IN ('8297')
GROUP BY anon_1
DESC
这是模型:
class EMap(Base):
FName = Column(String(length=45))
LName = Column(String(length=45))
AssociateName = column_property(FName + " " + LName)
有问题的代码:
DBSession.query(func.count(ExtendedCDR.UniqueID)
.label("CallCount"),func.sum(ExtendedCDR.Duration)
.label("TotalSeconds"))
.filter(or_(ExtensionMap.exten == ExtendedCDR.Extension,ExtensionMap.prev_exten == ExtendedCDR.Extension))
.filter(ExtendedCDR.StartTime>jan1)
.filter(ExtendedCDR.Extension.in_(extensions))
.group_by(ExtensionMap.AssociateName)
.order_by(func.count(ExtendedCDR.UniqueID).desc())
最后,这是 group_by 失败时的实际堆栈跟踪:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/pyramid_exclog-0.7-py2.7.egg/pyramid_exclog/__init__.py", line 111, in exclog_tween
return handler(request)
File "/usr/local/lib/python2.7/site-packages/pyramid-1.5.4-py2.7.egg/pyramid/router.py", line 163, in handle_request
response = view_callable(context, request)
File "/usr/local/lib/python2.7/site-packages/pyramid-1.5.4-py2.7.egg/pyramid/config/views.py", line 245, in _secured_view
return view(context, request)
File "/usr/local/lib/python2.7/site-packages/pyramid-1.5.4-py2.7.egg/pyramid/config/views.py", line 355, in rendered_view
result = view(context, request)
File "/usr/local/lib/python2.7/site-packages/pyramid-1.5.4-py2.7.egg/pyramid/config/views.py", line 501, in _requestonly_view
response = view(request)
File "/opt/cedar/cedar/views/ViewMyDashboard.py", line 51, in MyDashboardView
YearList = ObstinateDatabaseQueryAll(DBSession.query(func.count(ExtendedCDR.UniqueID).label("CallCount"),func.sum(ExtendedCDR.Duration).label("TotalSeconds"),ExtensionMap.AssociateName).filter(or_(ExtensionMap.exten == ExtendedCDR.Extension,ExtensionMap.prev_exten == ExtendedCDR.Extension)).filter(ExtendedCDR.StartTime>year_today).filter(ExtendedCDR.Extension.in_(extensions)).group_by(ExtensionMap.AssociateName).order_by(func.count(ExtendedCDR.UniqueID).desc()))
File "/opt/cedar/cedar/controllers/db.py", line 40, in ObstinateDatabaseQueryAll
ret=query.all()
File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/query.py", line 2408, in all
return list(self)
File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/query.py", line 2525, in __iter__
return self._execute_and_instances(context)
File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/query.py", line 2540, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 914, in execute
return meth(self, multiparams, params)
File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
compiled_sql, distilled_params
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1146, in _execute_context
context)
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1332, in _handle_dbapi_exception
exc_info
File "build/bdist.linux-x86_64/egg/sqlalchemy/util/compat.py", line 199, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb)
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1139, in _execute_context
context)
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/default.py", line 442, in do_execute
cursor.execute(statement, parameters)
ProgrammingError: (pyodbc.ProgrammingError) ('42S22', "[42S22] [FreeTDS][SQL Server]Invalid column name 'anon_1'. (207) (SQLExecDirectW)") [SQL: 'SELECT count(cdr_extended.[UniqueID]) AS [CallCount], sum(cdr_extended.[Duration]) AS [TotalSeconds], ext_map.[FName] + ? + ext_map.[LName] AS anon_1 \nFROM cdr_extended, ext_map \nWHERE (ext_map.exten = cdr_extended.[Extension] OR ext_map.prev_exten = cdr_extended.[Extension]) AND cdr_extended.[StartTime] > ? AND cdr_extended.[Extension] IN (?) GROUP BY anon_1 ORDER BY count(cdr_extended.[UniqueID]) DESC'] [parameters: (' ', datetime.datetime(2015, 1, 1, 0, 0), '8297')]
最佳答案
这已被开发人员确定为错误,其修复将在 1.0.0b4 里程碑中发布。
关于python - 在 SQLAlchemy 中,列属性上的 group_by 在 1.0.0b1 中不再有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29212205/
我有一个 data.frame,例如 df1 % summarise(no.c = n(), m.costs = mean(cost)) 通过 id 计算观测值的数
问题:我想使用 dplyr/tibble add_row。我想在我的示例中按 A 对数据进行分组,然后 add_row 包含组名 A,然后是 B 的值。 我面临的问题是尝试在 A 下的列中添加 Gro
Ruby 有这个很棒的方法 group_by对于可枚举的。 Elixir 有类似的东西吗?我在 Enum 模块上找不到此功能。谢谢 最佳答案 还没有。我们还没有添加它,因为我们正在等待 map 。它将
我有 30 个传感器的 CO2 测量数据,这些传感器不会同时测量,也不会完全在同一时间开始。我想尽可能地对齐它们,所以我认为取 10s 的平均值可能是一个很好的解决方案。 在上一个问题中:Group
我有数据和图表,就像我在下面给出的示例一样。 我想要第三个“条件”,即给定年份和月份的条件 A 和条件 B 的总金额。我不知道该怎么做,因为 Condition 包含在 group_by 语句中。特别
我有一组看起来像这样的数据: +----------+------------+-------+-------+ | step1 | step2 | step3 | step4 | +
下面是我的示例,让我解释一下我正在尝试做的事情,尽管它并没有像我想要的那样工作。 我需要找到同一个人在同一日期的 z 列中有 2 个以上唯一值的所有实例。但是,我需要找到 z 列中特定值列表的位置。
我有一些数据如下所示: cusip date start_date end_date 1 00036020 2011-01-31 2011-07-29 2012-06-30
我在 codeigniter 中有这个问题: 我尝试从数据库制作导航树系统。 模型: function getServices() { $this->db->select('service_url,
我想使用dplyr进行一些数据操作。背景:我有一个调查权重和一堆变量(主要是Likert项)。我想对带有或不带有调查权重的每个类别的频率和百分比求和。 例如,让我们只使用频率作为性别变量。结果应该是这
我正在处理大型(最少 8 百万行)dataframes并希望根据几个分组变量和 rmultinom 进行一些基本计算.就我的代码而言,完成计算至少需要约 1 秒,这不是问题,但我需要执行数千次,所以我
我将 flask 用作带有 sqlalchemy 的 python 框架。这些模型使用 query_property 帮助我构建查询: class Person(object): qu
我正在使用 R 编程语言。 我有以下数据集: library(dplyr) df = structure(list(ethnicity = c("c", "c", "c", "b", "c", "b"
我有数据集,df, Subject Folder Message Date A Out 9/9/2019 5
我的数据库看起来(有点)像这样: Table 'posts': ID title text 62 Trees in Europe You can find fine t
我的一些组合值在文本字段中有逗号,有没有办法可以指定要连接的字符,而不是逗号? 最佳答案 在 mysql documentation你可以找到完整的语法 GROUP_CONCAT([DISTINCT]
我想根据内容对数组的字符串元素进行分组。 ["abc", "abc", "def", "ghi", "ghi"].group_by { |x|一些代码 所以我希望它返回: [["abc", "abc"
Python 3.6我有一个简单的对象列表: for obj in obj_ts: print(obj['address']) 这告诉我: mwpJCSEEkphA1utQGA2Y9Vx8cu
我有一个名为 questions 的表,其中包含以下行: questions.id | questions.target_username 1 | every.one 2
我的数组是 fruits = [["apple", "Tue"], ["mango", "Mon"], ["apple", "Wed"], ["orange", "Tue"]] 我要得到的结果是Gro
我是一名优秀的程序员,十分优秀!