НачатьНачать бесплатно

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

Посмотреть курс

Практическое интерактивное упражнение

Превратите теорию в практику с помощью одного из наших интерактивных упражнений

Начать упражнение