所以我有一个像
这样的查询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 查询行来获取计数。
最佳答案
您提供的语法应该有效。您所要做的就是将 Count('*')
替换为 Count('id')
或 Count('pk')
即可计算所有条目。
Projects.objects.aggregrate(Sum('project_shares'), Count('pk'))
输出如下:
{'project_shares__sum':9,'pk__count':8}
关于Django模型同时聚合和和计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50233529/