Перейти к основному содержимому
Модуль 2 · Урок 4 из 48/57 в курсе~8 min
Уроки модуля (4/4)

Подсчет и суммирование: COUNT, AVG, MAX.

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

Наиболее распространенными из них являются:

  • COUNT(*) — сколько строк.
  • AVG(column) — среднее числовых значений (игнорируется NULL).
  • MAX(column) / MIN(column) — максимальное/минимальное значение.
  • SUM(column) — сумма числовых значений.
SQL
SELECT COUNT(*),
       AVG(salary),
       MAX(salary)
FROM employees;

Когда агрегат применяется ко всей таблице (без GROUP BY, который вы увидите в следующем модуле) результат — одна строка, независимо от количества строк в исходной таблице.

В сочетании с ГДЕ

WHERE фильтрует перед агрегированием: агрегат работает только со строками. который прошел фильтр.

SQL
-- Stipendio medio dei soli dipendenti del Marketing (department_id = 3):
SELECT AVG(salary)
FROM employees
WHERE department_id = 3;

Попробуйте это

Упражнение#sql.m2.l4.e1
Попыток: 0Загрузка…

Сколько сотрудников принято на работу с 1 января 2020 года? Возвращает одно число (одна строка, один столбец).

Загрузка редактора…
Показать подсказку

Функция, подсчитывающая строки, — COUNT(*).

Решение доступно после 3 попыток

Обзор упражнения

Упражнение#sql.m2.l4.e2
Попыток: 0Загрузка…

С помощью одного запроса вычислите среднюю (AVG) и максимальную (MAX) зарплату сотрудников отдела маркетинга (department_id = 3). Одна строка, два столбца.

Загрузка редактора…
Показать подсказку

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

Решение доступно после 3 попыток