Що таке агрегатні функції?
Агрегатні функції виконують обчислення над набором значень і повертають єдине значення. Вони корисні для підрахунку, обчислення середніх значень, пошуку мінімальних і максимальних значень тощо.
Найпоширеніші агрегатні функції
COUNT() — підраховує кількість рядків.
SUM() — обчислює суму значень.
AVG() — обчислює середнє значення.
MIN() — знаходить мінімальне значення.
MAX() — знаходить максимальне значення.
Розглянемо кожну з них детальніше
COUNT()
Функція COUNT() використовується для підрахунку кількості рядків у таблиці або результаті запиту.
Приклад:
SELECT COUNT(*) AS TotalRows
FROM Employees;
Цей запит поверне кількість усіх рядків з таблиці Employees.
SUM()
Функція SUM() обчислює суму значень у стовпці.
Приклад:
SELECT SUM(Salary) AS TotalSalary
FROM Employees;
Поверне суму зарплат усіх співробітників з таблиці Employees.
AVG()
Функція AVG() обчислює середнє значення числових значень у стовпці.
Приклад:
SELECT AVG(Salary) AS AverageSalary
FROM Employees;
Запит поверне середню зарплату всіх співробітників у таблиці Employees.
MIN() та MAX()
Функції MIN() і MAX() знаходять мінімальне та максимальне значення у стовпці відповідно.
Приклад:
SELECT MAX(price) AS highest_price
FROM products;
Цей запит поверне найвищу ціну серед усіх продуктів у таблиці products.
Використання агрегатних функцій з GROUP BY
Часто агрегатні функції використовуються разом з GROUP BY, яке групує рядки з однаковими значеннями в певних стовпцях, щоб потім застосувати агрегатні функції до кожної групи.
Приклад:
SELECT Department, COUNT(*) AS NumberOfEmployees
FROM Employees
GROUP BY Department;
Цей запит підрахує кількість співробітників у кожному відділі.
Використання з умовами HAVING
Для фільтрації результатів після групування використовується оператор HAVING.
Приклад:
SELECT category, SUM(price) AS total_price
FROM products
GROUP BY category
HAVING SUM(price) > 1000;
Цей запит поверне лише ті категорії, в яких загальна сума цін перевищує 1000.
Комбінування декількох агрегатних функцій
Агрегатні функції можна комбінувати в одному запиті для створення складніших звітів.
SELECT Department,
COUNT(*) AS NumberOfEmployees,
AVG(Salary) AS AverageSalary,
SUM(Salary) AS TotalSalary
FROM Employees
GROUP BY Department;
Цей запит поверне кількість співробітників, середню зарплату та загальну суму зарплат для кожного відділу.
Поради та підказки
Агрегатні функції в SQL є потужним інструментом для аналізу даних. Вони дозволяють швидко обчислювати потрібні значення, що робить їх незамінними у роботі з базами даних.
Використовуючи SUM(), AVG(), COUNT(), MAX() та MIN() разом з GROUP BY та HAVING, ви зможете отримати необхідну інформацію для прийняття обґрунтованих рішень.