ПочатиПочніть безкоштовно

SQL коротко (2)

Ще одне поширене завдання з базами даних — агрегація. Тобто зменшення даних шляхом поділу їх на частини та підсумовування кожної частини.

У SQL це робиться за допомогою команди GROUP BY. Вона розбиває дані на групи та застосовує функцію з вашого оператора SELECT до кожної групи.

Наприклад, якщо ви хочете порахувати кількість рейсів з кожного з двох аеропортів вильоту, можна використати запит

SELECT COUNT(*) FROM flights
GROUP BY origin;

GROUP BY origin вказує SQL, що у виводі має бути рядок для кожного унікального значення стовпця origin. Оператор SELECT обирає значення, якими ви хочете заповнити кожен зі стовпців. Тут ми хочемо COUNT() — порахувати кожен рядок у кожній з груп.

Можна використовувати GROUP BY за більш ніж одним стовпцем. Тоді у підсумковій таблиці буде рядок для кожної комбінації унікальних значень у кожному стовпці. Наступний запит рахує кількість рейсів із SEA та PDX до кожного аеропорту призначення:

SELECT origin, dest, COUNT(*) FROM flights
GROUP BY origin, dest;

Вивід міститиме рядок для кожної комбінації значень у origin і dest (тобто рядок для кожної пари аеропорту вильоту та призначення, куди виконувався рейс). Також буде стовпець із COUNT() усіх рядків у кожній групі.

Пам'ятайте, поглиблений огляд SQL можна знайти тут.

Яку інформацію поверне цей запит? Нагадаємо, таблиця flights містить дані про рейси, що вилітали з PDX і SEA у 2014 та 2015 роках. Зверніть увагу: функція AVG() обчислює середнє значення стовпця!

SELECT AVG(air_time) / 60 FROM flights
GROUP BY origin, carrier;

Ця вправа є частиною курсу

Основи PySpark

Переглянути курс

Практична інтерактивна вправа

Перетворіть теорію на практику за допомогою однієї з наших інтерактивних вправ

Почати вправу