我查询一个模型:

Members.objects.all()

它返回:
Eric, Salesman, X-Shop
Freddie, Manager, X2-Shop
Teddy, Salesman, X2-Shop
Sean, Manager, X2-Shop

我想要的是知道Django最好的解雇方式
对我的数据库的group_by查询,例如:
Members.objects.all().group_by('designation')

当然,这不起作用。
我知道我们可以在django/db/models/query.py上做一些技巧,但是我很好奇知道如何在不打补丁的情况下进行操作。

最佳答案

如果您打算进行聚合,则可以使用aggregation features of the ORM:

from django.db.models import Count
Members.objects.values('designation').annotate(dcount=Count('designation'))

这导致查询类似于
SELECT designation, COUNT(designation) AS dcount
FROM members GROUP BY designation

并且输出将为以下形式
[{'designation': 'Salesman', 'dcount': 2},
 {'designation': 'Manager', 'dcount': 2}]

关于python - 如何在Django中以GROUP BY查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/629551/

10-11 00:00