如何在Django中以GROUP BY查询?
我查询一个模型:
Members.objects.all()
它返回:
Eric, Salesman, X-ShopFreddie, Manager, X2-Shop
Teddy, Salesman, X2-Shop
Sean, Manager, X2-Shop
我想要的是知道group_by
向我的数据库发送查询的最佳Django方法,例如:
Members.objects.all().group_by('designation')
当然,这不起作用。我知道我们可以在上做一些技巧django/db/models/query.py
,但我只是好奇地知道如何做而不打补丁。
回答:
如果你打算进行聚合,则可以使用ORM的聚合功能:
from django.db.models import CountMembers.objects.values('designation').annotate(dcount=Count('designation'))
这导致查询类似于
SELECT designation, COUNT(designation) AS dcountFROM members GROUP BY designation
并且输出将为以下形式
[{'designation': 'Salesman', 'dcount': 2}, {'designation': 'Manager', 'dcount': 2}]
以上是 如何在Django中以GROUP BY查询? 的全部内容, 来源链接: utcz.com/qa/410321.html