SUM / AVG / MIN / MAX
Агрегатные функции для вычисления суммы, среднего, минимума и максимума числовых значений.
SUM(col) | AVG(col) | MIN(col) | MAX(col)Объяснение
Пример
SELECT
SUM(total) AS revenue,
AVG(total) AS avg_order,
MIN(total) AS min_order,
MAX(total) AS max_order
FROM orders
WHERE status = 'paid';Связанные термины
Анекдоты по теме
— Почему GROUP BY обижается, когда в SELECT есть колонка не из группировки? — Потому что не знает, какое значение выбрать из группы. Ему нужна определённость.
Аналитик хочет топ-3 продукта в каждой категории. Пишет GROUP BY, ORDER BY, LIMIT 3. Получает топ-3 вообще, не по категориям. DBA: тебе нужна оконная функция. ROW_NUMBER() OVER (PARTITION BY category ORDER BY sales DESC) Потом WHERE rn <= 3. Аналитик: почему это не просто LIMIT 3 внутри GROUP BY?! DBA: потому что SQL так работает.
— Что вернёт AVG(salary) если все зарплаты NULL? — NULL. — А SUM? — NULL. — А COUNT(salary)? — 0. COUNT считает непустые, их нет. — А COUNT(*)? — Количество строк. Это COUNT строк, не значений.