Аналитика на SQL
2026-02-26 17:10 Diff

Ранее в курсе мы изучили функции COUNT. Но кроме нее, в SQL есть и другие агрегирующие функции, которые позволяют проводить разнообразные вычисления над данными. К ним относятся:

  • SUM
  • MAX
  • MIN
  • AVG

В этом уроке мы изучим эти агрегирующие функции. Они играют важную роль в анализе: позволяют быстро извлекать ключевые характеристики данных и обобщать информацию. Все это помогает аналитику лучше понять данные и прийти к более точным выводам.

Перед изучением агрегирующей функции отметим один важный факт: как и в случае с COUNT, функции SUM, MAX, MIN и AVG игнорируют нулевые значения при выполнении вычислений. Другими словами, значения NULL в столбце не учитываются при выполнении математических операций.

Функция SUM

Функция SUM подсчитывает суммы значений в определенном столбце. Это полезно, если нужно получить общую величину — например, общий доход или количество проданных товаров.

Вычислим общее количество проданных товаров:

В этом запросе мы используем агрегирующую функцию SUM для подсчета общего количества товаров, проданных во всех магазинах. Рассмотрим ее подробнее:

  • Оператор SELECT и функция SUM(quantity) вычисляют сумму значений столбца quantity
  • Ключевое слово AS присваивает результату псевдоним total, чтобы сделать вывод понятнее
  • Оператор FROM указывает, что нужно использовать таблицу sales как источник данных для запроса

В итоге мы получаем такой результат — общее количество проданных товаров во всех магазинах:

Функции MAX и MIN

MAX и MIN находят наибольшее и наименьшее значение в столбце. Таким образом можно определить максимальную и минимальную цену товара или диапазон дат.

Для примера определим дату самой ранней и самой поздней продажи:

Получим такой результат:

Представим, что еще нам нужно узнать разницу по времени между этими двумя датами. Простая разность двух этих показателей не приведет к нужному результату.

Чтобы вычислить временной интервал между двумя датами в SQLite, воспользуемся специфичной функцией JULIANDAY():

Такой результат получим в итоге:

Функция AVG

Функция AVG вычисляет среднее значение столбца. С ее помощью можно определить любое среднее значение — например, среднюю стоимость товаров, число продаж или зарплату сотрудников.

Функция AVG работает следующим образом:

  • Сначала она определяет все числовые значения в указанном столбце
  • Затем она суммирует все эти значения
  • В конце она делит сумму на количество числовых значений, не учитывая нулевые

Чтобы попрактиковаться, вычислим среднюю цену товаров через функцию AVG:

В выводе мы увидим среднюю цену:

При вычислении среднего значения часто получаются дробные показатели, поэтому полезно использовать функцию ROUND. Она округляет полученный результат до нужного количества знаков после запятой.

Посчитаем среднее количество проданных товаров с округлением:

Результат получится без знаков после запятой, потому что для функции ROUND мы указали число 0 в качестве второго аргумента и таким образом округлили результат до целого значения:

Выводы

В этом уроке мы познакомились с другими агрегирующими функциями в SQL — SUM, MAX, MIN и AVG. Как и функция COUNT, они игнорируют значения NULL при выполнении вычислений. Кратко повторим их основные свойства:

  • SUM подсчитывает сумму значений в определенном столбце
  • MAX и MIN находят наибольшее и наименьшее значение в столбце
  • AVG вычисляет среднее значение столбца

Также мы познакомились с еще двумя полезными функциями:

  • JULIANDAY() вычисляет интервал между двумя датами в SQLite
  • ROUND округляет результаты до нужного количества знаков после запятой