如何在 Django 中实现 Group By 查询?
在 Django 中,要对模型执行 Group By 查询,可以使用ORM 的聚合特性。这是通过利用 value() 和 annotate() 方法来实现的。
考虑以下示例:
from django.db.models import Count result = (Members.objects .values('designation') .annotate(dcount=Count('designation')) .order_by() )
此代码转换为类似于以下的 SQL 查询:
SELECT designation, COUNT(designation) AS dcount FROM members GROUP BY designation
查询的结果将是一个字典对象列表,每个字典对象代表一个组。例如:
[{'designation': 'Salesman', 'dcount': 2}, {'designation': 'Manager', 'dcount': 2}]
要在结果中包含多个字段,只需将它们作为参数添加到values():
.values('designation', 'first_name', 'last_name')
参考文献:
以上是如何在 Django 中执行 GROUP BY 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!