Django 模型同时汇总和计数
Django model aggregate sum and count at same time
所以我有一个类似
的查询
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 中,count 使用聚合外键引用,所以我很困惑。
如果不是,我已经添加了另一个 orm 查询行来获取计数。
您提供的语法应该有效。您所要做的就是将 Count('*')
替换为 Count('id')
或 Count('pk')
以计算所有条目。
Projects.objects.aggregrate(Sum('project_shares'), Count('pk'))
输出如下:
{'project_shares__sum':9,'pk__count':8}
所以我有一个类似
的查询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 中,count 使用聚合外键引用,所以我很困惑。 如果不是,我已经添加了另一个 orm 查询行来获取计数。
您提供的语法应该有效。您所要做的就是将 Count('*')
替换为 Count('id')
或 Count('pk')
以计算所有条目。
Projects.objects.aggregrate(Sum('project_shares'), Count('pk'))
输出如下:
{'project_shares__sum':9,'pk__count':8}