Django模型同时汇总总和和计数

时间:2018-05-08 12:22:03

标签: django count sum aggregate django-2.0

所以我有一个像

这样的查询
SELECT sum(project_shares) as shares, count(*) as count FROM vv_projects

django 2.0中是否有类似下面的语法

Projects.objects.aggregrate(Sum('project_shares'),Count('*'))

并输出

{'project_shares_sum':9,'count':8}

在django 2.0中使用聚合外键引用,所以我很困惑。 如果没有,我已添加另一个orm查询行来获取计数。

1 个答案:

答案 0 :(得分:1)

您提供的语法应该有效。您所要做的就是将Count('*')替换为Count('id')Count('pk')来计算所有条目。

Projects.objects.aggregrate(Sum('project_shares'), Count('pk'))

输出将如下:

{'project_shares__sum':9,'pk__count':8}