Sumy bieżące z użyciem funkcji okna w SQL
Funkcja okna działa podobnie jak funkcja agregująca, z tą różnicą, że zwraca wynik dla każdego wiersza w zbiorze danych – nie jeden wiersz na grupę.
Funkcje okna można łączyć z agregacją. Obliczanie sumy bieżącej za pomocą funkcji okna jest prostsze niż rozwiązanie oparte na złączeniach, a zapytanie może działać znacznie szybciej.
Do dyspozycji masz tabelę schedule z kolumnami train_id, station, time oraz diff_min. Kolumna diff_min zawiera czas, jaki upływa między bieżącą stacją a następną stacją na trasie.
To ćwiczenie jest częścią kursu
Wprowadzenie do Spark SQL w Pythonie
Instrukcje do ćwiczenia
- Napisz zapytanie, które dodaje do wyników dodatkową kolumnę
running_total. Kolumnarunning_totalobliczaSUM()różnic czasu między stacjami, podanych w kolumniediff_min. - Uruchom zapytanie i wyświetl wynik.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()