如何在Django ORM中使用GROUP BY

乔纳森

我陷入了以下SQL查询需要等效的Django ORM的情况请帮助,我是django的新手。

SELECT column1, column2, sum(column3) as total
FROM table1
GROUP BY column1;

我已经尝试过Table1.objects.values('column1', 'column2').annotate(total=Sum(column3))使上面的orm这样:

SELECT column1, column2, sum(column3) as total
FROM table1
GROUP BY column1, column2;

它把我不想的column1和column2分组。

Shubhanshu

看看您有效地尝试做的是:

Column1  Column2  Column3
MP       C1       100
MP       C1       110
MP       C2       100
MH       C3       50
MH       C4       85
RJ       C5       100

现在,如果您这样做SELECT Column1, Column2, sum(Column3) as total FROM table1 GROUP BY Column1,将会变得很奇怪(也就是说,它将选择Column2的第一个值,然后将Column1中的每个值进行分组,这显然会产生错误的结果(如果不是错误的话))。相反,有意义的是,您可以在Group By中同时选择Column1和Column2,以便groupby可以正常工作,或者在选择列时不要编写Column2。

如果您的解释令人满意,那么您在问题中所写的内容(您自己想出的解决方案)将能够解决您的目的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章