Что такое агрегация в ORM
Python
Senior
Без компании
Что такое агрегация в ORM
Ответы
Агрегация в ORM — это операция, которая позволяет выполнять вычисления над набором данных (например, сумма, среднее, максимум) без загрузки всех объектов в память. Она работает на уровне БД, что делает её эффективной для больших наборов данных.
Пример в Django ORM:
```
from django.db.models import Avg, Max, Min, Sum
# Средняя цена всех товаров
avg_price = Product.objects.aggregate(Avg('price'))
# Несколько агрегаций за один запрос
stats = Product.objects.aggregate(
min_price=Min('price'),
max_price=Max('price'),
total=Sum('price')
)
```
Ключевые особенности:
- Выполняется на стороне БД
- Возвращает словарь с результатами
- Можно комбинировать с фильтрами (filter())
- Экономит память и время по сравнению с обработкой в Python
Агрегация часто используется в аналитических запросах и дашбордах.