Pepelen

Считать агрегаты COUNT/SUM/AVG/MIN/MAX и группировать строки через GROUP BY, верно предсказывая результат.

1 / 7

Пять агрегатных функций SQL

COUNT, SUM, AVG, MIN, MAX — чем отличаются

Агрегатные функции сворачивают множество строк в одно число. Запомните, что делает каждая из пяти функций, прежде чем писать GROUP BY.
Lesson notes
Пять агрегатов и группировка строк
SQL умеет считать по целым столбцам с помощью агрегатных функций. COUNT(*) считает число строк, SUM — сумму значений, AVG — среднее, MIN — минимум, MAX — максимум. Эти функции «схлопывают» несколько строк в одно число. Команда GROUP BY позволяет применить агрегат не ко всей таблице сразу, а отдельно к каждой группе строк. Например, если в таблице orders есть столбцы city и amount, запрос SELECT city, COUNT(*), SUM(amount) FROM orders GROUP BY city посчитает отдельно для каждого города. Разберём пример на таблице orders с тремя городами: • Москва: строки с amount 100, 150, 200 → COUNT = 3, SUM = 450, AVG = 150, MIN = 100, MAX = 200 • Казань: строки с amount 50, 80 → COUNT = 2, SUM = 130, AVG = 65, MIN = 50, MAX = 80 • Сочи: одна строка с amount 300 → COUNT = 1, SUM = 300, AVG = 300, MIN = 300, MAX = 300 Важное правило: в SELECT вместе с GROUP BY можно писать только столбец группировки (здесь — city) или агрегатные функции. Если написать SELECT city, amount GROUP BY city — база выдаст ошибку, потому что не знает, какое из нескольких значений amount показывать для каждой группы.
Урок 1: Агрегаты и GROUP BY — Аналитика данных с нуля: SQL, таблицы и метрики