gpt4 book ai didi

python - SQLAlchemy 查询中的分组依据

转载 作者:行者123 更新时间:2023-11-30 23:46:55 25 4
gpt4 key购买 nike

我正在尝试选择分组平均值。

a1_avg = session.query(func.avg(Table_A.a1_value).label('a1_avg'))\
.filter(between(Table_A.a1_date, '2011-10-01', '2011-10-30'))\
.group_by(Table_A.a1_group)

我已经尝试了该查询的几个不同迭代,这与我所需要的最接近。我相当确定 group_by 正在造成问题,但我不确定如何使用 SQLA 正确实现查询。表结构和预期输出:

TABLE A
A1_ID | A1_VALUE | A1_DATE | A1_LOC | A1_GROUP
1 | 5 | 2011-10-05 | 5 | 6
2 | 15 | 2011-10-14 | 5 | 6
3 | 2 | 2011-10-21 | 6 | 7
4 | 20 | 2011-11-15 | 4 | 8
5 | 6 | 2011-10-27 | 6 | 7

EXPECTED OUTPUT
A1_LOC | A1_GROUP | A1_AVG
5 | 6 | 10
6 | 7 | 4

最佳答案

我猜您只是在结果中缺少组标识符 (a1_group)。另外(假设我正确理解您的模型),您需要还为a1_loc列添加group by子句:

edit-1:根据问题规范更新了查询

a1_avg = session.query(Table_A.a1_loc, Table_A.a1_group, func.avg(Table_A.a1_value).label('a1_avg'))\
.filter(between(Table_A.a1_date, '2011-10-01', '2011-10-30'))\
#.filter(Table_A.a1_id == '12')\ # @note: you do NOT NEED this
.group_by(Table_A.a1_loc)\ # @note: you NEED this
.group_by(Table_A.a1_group)

关于python - SQLAlchemy 查询中的分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8667960/

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