Как вы группируете значения столбца и находите максимальное значение группы в Django? - PullRequest
0 голосов
/ 24 марта 2019

Допустим, у меня есть столбец с именем item_type , в котором содержатся такие значения, как джинсы, брюки, футболки и т. Д.

Как можно сгруппировать количество значений этогостолбец и найти максимальное значение из групп?

Я выполняю приведенный ниже запрос, чтобы получить группировки
Item.objects.values('item_type').annotate(total = Count('item_type')).order_by('item_type')
, где Item - это название моей модели.

Однако это возвращает сгруппированные списки в виде словаря списков, но мне нужно максимальное количество из этих группировок.

Это то, что возвращается через мой HTML-шаблон:

{'item_type': 'jeans', 'total': 250}
{'item_type': 'shirts', 'total': 350}
{'item_type': 'track-pants', 'total': 502}
{'item_type': 'trousers', 'total': 136}
{'item_type': 'tshirts', 'total': 450}

Как мне получить только это: {'item_type': 'track-брюк', 'всего': 502}

Кроме того, есть ли способ извлечь максимальные значения какпеременные?По сути, я хочу значение ключа item_type , которое равно штанины и то же самое для всего , которое в данном случае составляет 502 .

1 Ответ

1 голос
/ 24 марта 2019

Вы можете использовать аннотированный итог в выражении order_by . Вы можете заказать по количеству и получить первый товар, например:

Item.objects.values('item_type').annotate(total = Count('item_type')).order_by('-total')[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...