Django orm group by multiple columns

时间:2016-05-27 12:42:39

标签: django django-models django-orm

如何在Django中执行多列组?
我只看到了一个列组的例子。
下面是我想要转换为Django ORM的查询。

SELECT order_id,city,locality,login_time,sum(morning_hours),sum(afternoon_hours),sum(evening_hours),sum(total_hours) 
FROM orders 
GROUPBY order_id,city,locality,login_time`

1 个答案:

答案 0 :(得分:9)

from django.db.models import Sum
Your_Model.objects.values('order_id', 'city', 'locality', 'login_time').order_by().annotate(sum('morning_hours'), sum('afternoon_hours'), sum('evening_hours'), sum('total_hours'))

我希望上面的代码片段有帮助(在回答时,我不知道早上时间,下午时间等是表格中的派生列还是现有字段,因为您在问题中没有指定任何类型。因此,我做了我的假设并回答了你的问题)。对于按多列分组,已经存在SO问题。请参阅此link