Aggregation

Базовый SQL
≈ 1 мин чтения

Когда важны не отдельные строки, а общий результат

До этого мы выбирали, фильтровали и сортировали отдельные строки. Но часто вопрос к данным звучит иначе: сколько заказов сделано, какова средняя цена, какая сумма продаж получилась за день или сколько пользователей находится в каждой стране.

Для таких задач SQL использует агрегацию: множество строк превращается в одно итоговое значение или в набор итогов по группам.

Что будет внутри раздела

  • Агрегатные функции. Поймём общий принцип функций, которые вычисляют одно значение по набору строк.
  • COUNT. Разберём подсчёт строк и важную разницу между COUNT(*) и COUNT(column).
  • SUM, AVG, MIN и MAX. Научимся получать сумму, среднее, минимальное и максимальное значение.
  • GROUP BY. Перейдём от одного итога по всей выборке к отдельному итогу для каждой группы строк.
  • HAVING. Научимся фильтровать уже сформированные группы по результатам агрегирования.
  • Группировка по нескольким столбцам. Разберём группы, которые определяются не одним, а сочетанием нескольких значений.

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