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

Накопленные суммы с помощью оконных функций SQL

Оконная функция похожа на агрегирующую, но в отличие от неё возвращает значение для каждой строки набора данных, а не одну строку на группу.

Агрегацию можно совмещать с оконными функциями. Вычислить накопленную сумму с помощью оконной функции гораздо проще, чем с использованием соединений. При этом запрос, как правило, выполняется значительно быстрее.

Для работы вам предоставлена таблица schedule со столбцами train_id, station, time и diff_min. Столбец diff_min содержит время в пути между текущей и следующей станцией маршрута.

Это упражнение является частью курса

Введение в Spark SQL на Python

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

Инструкции к упражнению

  • Выполните запрос, который добавляет к записям набора данных дополнительный столбец running_total. Столбец running_total вычисляет SUM() разностей времени между станциями из столбца diff_min.
  • Запустите запрос и просмотрите результат.

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

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Add col running_total that sums diff_min col in each group
query = """
SELECT train_id, station, time, diff_min,
____(____) OVER (PARTITION BY ____ ORDER BY ____) AS running_total
FROM schedule
"""

# Run the query and display the result
spark.____(query).show()
Редактировать и запускать код