Как использовать Count() и Min/Max в sql

У меня есть следующая таблица: MyTable

   name   | price
|-------------------|
|   a     |    10   |
|-------------------|
|   b     |     5   |
|-------------------|
|   a     |     7   |
|-------------------|
|   a     |     3   |
|-------------------|
|   a     |     12  |
|-------------------|
|   b     |     6   |
|-------------------|
|   c     |     2   |
|-------------------|
|   c     |     5   |
|-------------------|

Я хочу подсчитать частоту name и мне нужно получить max_price и min_price для каждого name.

Ожидаемый результат:

   name   | count   | min_price | max_price
|-------------------|----------------------|
|   a     |     4   |  3        |   12     | 
|-------------------|----------------------|
|   b     |     2   |  5        |   6      |
|-------------------|----------------------|
|   c     |     2   |  2        |   5      |
|-------------------|----------------------|

Я хотел бы написать запрос в Django ORM. Пожалуйста, помогите мне в этом.

Вы можете аннотировать элементы с помощью:

from django.db.models import Count, Max, Min

MyModel.objects.values('name').annotate(
    count=Count('pk'),
    min_price=Min('price'),
    max_price=Max('price')
).order_by('name')
Вернуться на верх