Как использовать 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')