Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Napisz zapytanie, które dodaje do wyników dodatkową kolumnę running_total. Kolumna running_total oblicza SUM() różnic czasu między stacjami, podanych w kolumnie diff_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()
Edytuj i uruchom kod