АгрегатыНачальный
SUM / AVG / MIN / MAX
Агрегатные функции для вычисления суммы, среднего, минимума и максимума числовых значений.
Синтаксис
SUM(col) | AVG(col) | MIN(col) | MAX(col)
Объяснение
Все эти функции игнорируют NULL. Если все значения NULL — возвращают NULL (кроме COUNT).
AVG(col) = SUM(col) / COUNT(col). Оба игнорируют NULL, поэтому AVG может ввести в заблуждение — нули и NULL считаются по-разному.
Пример
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? Потому что без него они считают всю таблицу, а с ним — маленькие уютные группки. Как семья вместо коммуналки.
Аналитик пишет SUM(revenue) и получает NULL. Он в панике звонит DBA. DBA: проверь, есть ли NULL в колонке revenue. Аналитик: есть несколько. DBA: один NULL заражает всю сумму. Используй SUM(COALESCE(revenue, 0)).
— Что такое ROLLUP? — Групповая агрегация с промежуточными итогами. SELECT year, month, SUM(sales) FROM data GROUP BY ROLLUP(year, month); — Добавляет строки: итого за год и итого за всё. — Как сводная таблица в Excel? — Именно. Только в SQL.