gpt4 book ai didi

python - 如何使用 SQLAlchemy 加入 generate_series

转载 作者:行者123 更新时间:2023-12-05 02:08:46 26 4
gpt4 key购买 nike

我正在尝试按月分类一些事件。

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()

但是我得到一个错误:

NotSupportedError: (psycopg2.errors.FeatureNotSupported) 在 JOIN 条件下不允许返回集合函数

在 SQLAlchemy 的连接左侧使用系列,然后使用像计数这样的聚合的简单示例是什么?

最佳答案

不知道你有没有用过this作为引用忘记使用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()

关于python - 如何使用 SQLAlchemy 加入 generate_series,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60608698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com