Django orm 按多列分组

标签 django django-models django-orm

如何在 Django 中执行多列组?
我只看到了一个列 group by 的例子。
下面是我试图转换为 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`

最佳答案

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 .

关于Django orm 按多列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37483884/

相关文章:

python - Django:如何计算数据库中与另一个对象相关的对象数量?

python - Django CacheMachine 中的错误忽略了模型的保存?

python - Django 多对多查询和表查询

python - django 包含标记中任意数量的位置参数?

Django ManytoMany 未显示在管理中

django - 为什么在 POST 到 Django REST framework 时会得到 "CSRF cookie not set"?

django - 优化的 Django 查询集

python - 使用 annotate 或 extra 将外键字段添加到查询集中? (相当于 SQL "AS"?)

html - 向 HTML 中的类动态添加属性

python - Celery:将任务结果存储在 MySQL 还是 Redis 中更好?