Перейти до основного вмісту
Модуль 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

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 спроб