JavaRush /Курси /SQL SELF /Вступ до агрегатних функцій

Вступ до агрегатних функцій

SQL SELF
Рівень 7 , Лекція 0
Відкрита

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

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

Приклади задач, які вирішують агрегатні функції:

  • Порахувати загальну кількість записів у таблиці.
  • Знайти мінімальні або максимальні значення в числовому стовпці.
  • Підсумувати значення в одному зі стовпців.
  • Усереднити всі значення стовпця.
  • Виділити унікальні значення.

Як це працює "під капотом"?

SQL виконує агрегатну функцію після вибірки даних у SELECT. Наприклад, коли ти вказуєш SUM() або AVG(), SQL спочатку збирає дані, а потім виконує обчислення тільки для вибраних рядків.

Основні агрегатні функції в PostgreSQL

Давай перейдемо до практики і подивимось на топ-5 наших героїв:

  1. COUNT() — рахує кількість рядків.
  2. SUM() — підсумовує значення числового стовпця.
  3. AVG() — обчислює середнє значення.
  4. MIN() — знаходить мінімальне значення.
  5. MAX() — знаходить максимальне значення.

Приклади використання агрегатних функцій

  1. Підрахунок рядків за допомогою COUNT()

Функція COUNT() дозволяє порахувати загальну кількість рядків у таблиці або кількість непорожніх значень у конкретному стовпці.

Приклад: припустимо, у нас є таблиця students, яка зберігає інформацію про студентів:

id name age grade
1 Otto Art 20 85
2 Maria Chi 22 90
3 Alex Lin 21 78
4 Anna Song 23 NULL

Порахуємо загальну кількість студентів:

SELECT 
    COUNT(*) AS total_students
FROM students;

Результат:

total_students
4

Тепер порахуємо кількість студентів, у яких вказано grade:

SELECT 
    COUNT(grade) AS students_with_grades
FROM students;

Результат:

students_with_grades
3

Чому так вийшло? Бо COUNT(column) ігнорує значення NULL.

  1. Підсумовування за допомогою SUM()

Функція SUM() використовується для підсумовування всіх значень у числовому стовпці.

Приклад: давай дізнаємось, скільки сумарно балів набрали наші студенти.

SELECT 
    SUM(grade) AS total_grades
FROM students;

Результат:

total_grades
253

Примітка: Якщо у стовпці є NULL, вони просто ігноруються при підсумовуванні.

  1. Середнє значення за допомогою AVG()

Функція AVG() обчислює середнє значення по всіх числових записах у стовпці.

Приклад: порахуємо середній бал студентів.

SELECT 
    AVG(grade) AS average_grade
FROM students;

Результат:

average_grade
84.33

Ти міг помітити, що NULL знову ігноруються.

  1. Мінімум і максимум з MIN() та MAX()

Іноді треба знайти найменше або найбільше значення. Для цього існують MIN() і MAX().

Приклад: Знайдемо наймолодшого і найстаршого студента.

SELECT 
    MIN(age) AS youngest_student, 
    MAX(age) AS oldest_student
FROM students;

Результат:

youngest_student oldest_student
20 23

Детальніше про ці функції поговоримо вже у наступних лекціях.

Знайомство з NULL

Про NULL скоро буде окрема лекція, але якщо дуже коротко, то NULL — це відсутність значення. Нічого. Пустота. Нулик, як він є!

Припустимо, у нас є таблиця students, яка зберігає інформацію про студентів:

id name age grade hobbie
1 Otto Art 20 85
2 Maria Chi 22 90 Танці
3 Alex Lin 21 78
4 Anna Song 23

Ім'я та вік є завжди, а от оцінка і хобі можуть бути відсутніми. Якщо в комірці таблиці взагалі немає жодного значення, то про неї кажуть, що вона містить NULL. NULL — це не число і не рядок, це спеціальне кодове позначення, яке означає відсутність будь-якого значення.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ