Как получить подсчет более чем одного поля из таблицы с помощью 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
}
]
используйте эту ссылку для получения помощи. GROUB BY ... COUNT/SUM Django ORM эквивалент
https://riptutorial.com/django/example/30595/groub-by-----count-sum-django-orm-equivalent
Мы можем выполнить GROUP BY ... COUNT или GROUP BY ... SUM SQL эквивалентные запросы на Django ORM, с использованием annotate(), values(), order_by() и методов Count и Sum от django.db.models, соответственно: