03 June 2024

Агрегатні функції в SQL

#Навчання #SQL

Агрегатні функції в SQL — невіддільна частина роботи з базами даних. Вони допомагають отримати важливу інформацію з великих обсягів інформації. У цій статті ми розглянемо найпопулярніші агрегатні функції та їх використання.
Агрегатні функції в SQL

Що таке агрегатні функції?
Агрегатні функції виконують обчислення над набором значень і повертають єдине значення. Вони корисні для підрахунку, обчислення середніх значень, пошуку мінімальних і максимальних значень тощо.

Найпоширеніші агрегатні функції
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;

Цей запит поверне кількість співробітників, середню зарплату та загальну суму зарплат для кожного відділу.


Поради та підказки

  1. Не використовуйте агрегатні функції без групування, якщо потрібно працювати з підмножинами даних.
  2. Обережно з NULL значеннями — деякі функції ігнорують NULL, тоді як інші можуть обчислювати їх як нульові.
  3. Використовуйте HAVING замість WHERE для фільтрації після групування.


Агрегатні функції в SQL є потужним інструментом для аналізу даних. Вони дозволяють швидко обчислювати потрібні значення, що робить їх незамінними у роботі з базами даних. 

Використовуючи SUM(), AVG(), COUNT(), MAX() та MIN() разом з GROUP BY та HAVING, ви зможете отримати необхідну інформацію для прийняття обґрунтованих рішень.
 

Дізнайтеся більше про повну програму "SQL для бізнес-користувачів"

 

 

Популярные статьи