SQL
2026-02-26 18:12 Diff

Язык SQL — не просто язык запросов, а мощный инструмент, похожий на язык программирования, хотя и очень специфичный. Как и в других языках, здесь есть функции, незаменимые в конкретных задачах: найти сумму или среднее по столбцу, минимум или максимум. Такие функции называются агрегатными.

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

Функция COUNT

Ранее в курсе мы научились выбирать все записи из таблицы. Например, мы можем выбрать все записи из таблицы пользователей с помощью такого запроса:

View on DB Fiddle

Запрос вернет нам много строк, но точное их количество мы не знаем. Чтобы это выяснить, можно использовать функцию COUNT — она возвращает количество записей в выборке.

Ответить на вопрос «А сколько записей содержится в таблице users?» можно с помощью такого запроса:

View on DB Fiddle

Этот запрос выведет нам ровно одно число — количество строк в запросе. Это равносильно количеству пользователей в нашей базе, потому что в этой таблице хранится информация об уникальных пользователях.

В качестве аргумента мы передали символ *, который заменяет все поля таблицы.

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

View on DB Fiddle

Этот запрос также вернул значение 99 — это количество строк, id которых не равен NULL.

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

View on DB Fiddle

Этот запрос вернул 0, потому что в таблице поле email_confirmed не содержит никаких данных.

Обратите внимание, что COUNT возвращает количество записей в запросе, а не в таблице:

View on DB Fiddle

Этот запрос вернет количество девушек среди всех пользователей.

Функция SUM

Функция SUM возвращает сумму всех значений:

View on DB Fiddle

В этом запросе мы нашли суммарное время, проведенное всеми пользователями на онлайн-курсах.

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

View on DB Fiddle

Функция AVG

Чтобы найти среднее арифметическое всех значений, нужно воспользоваться функцией AVG (average — среднее).

В таблице ниже вы увидите, как это происходит:

Работает функция так же как и SUM. В качестве аргумента нужно передать числовое поле.

Найдем среднее время, проведенное пользователем с id = 9 на площадке онлайн-школы:

View on DB Fiddle

Функции MAX и MIN

Функции MAX и MIN позволяют найти максимальное и минимальное значение соответственно. Найдем максимальное время прохождения курса:

View on DB Fiddle

А теперь найдем минимальное время:

View on DB Fiddle

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

View on DB Fiddle

Запрос с функцией MIN выведет пользователя Abelardo58, потому что он идет первым по алфавиту.

Рассмотрим еще один пример:

View on DB Fiddle

Запрос с функцией MAX выведет пользователя Zoey24, потому что он идет по алфавиту последним.

Выводы

В этом уроке мы познакомились с агрегатными функциями:

  • COUNT - позволяет подсчитать количество строк
  • SUM - позволяет найти сумму чисел
  • AVG - позволяет подсчитать среднее арифметическое
  • MAX - возвращает максимальное значение численного поля или последнюю строку по алфавиту
  • MIN - возвращает минимальное значение численного поля или первую строку по алфавиту

Мы рассмотрели только основные функции языка SQL, а с полным списком вы можете ознакомиться в документации.