如何使用Django queryset从表中获取多个字段的计数



这是我的查询集

queryset = (PrathamTeamMembers.objects.
select_related('state', 'district', 'block', 'personnel_type').
filter(is_active=1).
annotate(total_state=Count('state', distinct=True),
total_district=Count('district', distinct=True)))

我期待与

相似的结果
{
"total_state": 10
"total_district": 60
}

但是它不是聚合,而是按表PrathamTeamMembers主键分组。这是我想避免的因为它是在表主键上分组,所以我的查询集给出的结果类似于..

[{
"total_state": 1,
"total_district": 1
},
{
"total_state": 1,
"total_district": 1
},
{
"total_state": 1,
"total_district": 1
}
]

使用此链接寻求帮助。grob by…COUNT/SUM

https://riptutorial.com/django/example/30595/groub-by--count-sum-django-orm-equivalent

我们可以执行GROUP BY…计数或组按…在Django ORM上使用annotate()、values()、order_by()和Django .db. SQL . SQL . SQL . SQL . SQL模型的Count和Sum方法:

相关内容

  • 没有找到相关文章

最新更新