Learnly
SQL для аналитиков/Глава 6/Урок 1

Зачем нужна агрегация и что это такое

Зачем нужна агрегация и что это такое

До сих пор мы получали строки, одна строка = одна запись. Агрегация позволяет из множества строк получить одно число.

Аналогия: агрегация, это итоги

Представь таблицу с продажами за год, тысячи строк. Тебе нужно знать:

  • Сколько всего продаж?
  • Какова общая выручка?
  • Какой средний чек?

Никто не будет считать это вручную. Агрегатные функции делают это за секунды.

Что такое агрегатная функция

Агрегатная функция принимает множество значений и возвращает одно:

[100, 200, 150, 300, 250]  →  SUM  →  1000
[100, 200, 150, 300, 250]  →  AVG  →  200
[100, 200, 150, 300, 250]  →  MAX  →  300

Разница между строчными и агрегатными функциями

Строчная функция, применяется к каждой строке отдельно:

SELECT UPPER(name) FROM users;
-- Результат: столько же строк сколько в таблице, только текст заглавными

Агрегатная функция, применяется ко всем строкам сразу, возвращает одну строку:

SELECT COUNT(*) FROM users;
-- Результат: одно число, количество пользователей

Когда нужна агрегация

Каждый раз когда задаёшь себе вопрос "сколько", "сколько всего", "какой средний", "какой максимальный", нужна агрегация.

  • Сколько пользователей зарегистрировалось за месяц? → COUNT
  • Какова общая выручка? → SUM
  • Какой средний чек? → AVG
  • Что самый дорогой товар? → MAX
  • Что самый дешёвый? → MIN

Агрегация + WHERE

Агрегировать можно не всю таблицу, а только отфильтрованные строки:

-- Выручка только по завершённым заказам
SELECT SUM(amount)
FROM orders
WHERE status = 'completed';

Сначала WHERE отфильтрует строки, потом SUM посчитает сумму по оставшимся.

💡 Главная мысль: Агрегация, это когда из многих строк получаешь одно значение. Это основа аналитики: любые "итого", "в среднем", "максимум", агрегатные функции.