Dav*_*vid 3 python postgresql sqlalchemy
我正在尝试按月对一些事件进行分类。
date_list = func.generate_series(start, end, '1 month')
db.session.query(func.count(Event.id)).join(date_list, true()).outerjoin(Event, Event.time==func.date(date_list)).all()
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
NotSupportedError: (psycopg2.errors.FeatureNotSupported) 在 JOIN 条件中不允许使用集合返回函数
在 SQLAlchemy 连接的左侧使用一系列,然后使用类似计数的聚合的简单示例是什么?
我想知道您是否已使用它作为参考,而忘记使用它FunctionElement.alias()
来生成函数表达式之外的可选内容generate_series()
。现在,您将按 ON 子句谓词右侧的方式传递集合返回函数表达式。而是用来column()
引用系列中的日期。控制连接的左侧是使用以下命令完成的Query.select_from()
:
from sqlalchemy import func, column
start = ...
end = ...
date_list = func.generate_series(start, end, '1 month').alias('month')
month = column('month')
db.session.query(month, func.count(Event.id)).\
select_from(date_list).\
outerjoin(Event, func.date_trunc('month', Event.time) == month).\
group_by(month)
all()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2803 次 |
最近记录: |