Django ORM Подсчет по нескольким полям - PullRequest
0 голосов
/ 01 октября 2019

Я работаю с Django, и мне нужно сгруппировать модель по нескольким полям.

Я хочу запрос:

select field1, field2 from tbl group by field1, field2 having count(*) > 1

Затем я попробовал следующее:

Tbl.objects.annotate(cnt=Count('field1','field2')).filter(cnt__gt=1)

Но это не сработало.
Не удается сгруппировать по нескольким полям в ORM?
Нужно ли писать RawQuery?

1 Ответ

1 голос
/ 01 октября 2019

В вашем наборе запросов django вы должны сначала использовать .values ​​(), чтобы выбрать столбцы, по которым вы хотите сгруппировать.

Tbl.objects.values('field1', 'field2').annotate(cnt=Count('pk')).filter(cnt__gt=1)
# or whatever you needed to do

РЕДАКТИРОВАТЬ

Также, пожалуйста, проверьте предыдущие вопросы перед тем, как задавать вопрос.

Группа Джанго по нескольким столбцам

Джанго: GROUP BY два значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...