Как в Django выполнить GROUP BY

Python Senior Без компании
Как в Django выполнить GROUP BY
Ответы
В Django GROUP BY выполняется с помощью методов `annotate()` и `values()` QuerySet. **Пример:** ``` from django.db.models import Count from myapp.models import Book # Группировка по полю 'author' с подсчётом количества книг result = Book.objects.values('author').annotate(total=Count('id')) ``` **Различия:** - `values('field')` указывает поля для группировки - `annotate()` добавляет агрегацию (Count, Sum, Avg и др.) **Важно:** порядок методов имеет значение! Сначала `values()`, затем `annotate()`. Для более сложных группировок можно использовать `F()`-выражения или кастомные SQL через `extra()`.