LoslegenKostenlos loslegen

Laufende Summen mit Window-Function-SQL

Eine Window-Funktion ist ähnlich wie eine Aggregatfunktion, nur dass sie für jede Zeile im Datensatz ein Ergebnis liefert statt einer einzigen Zeile pro Gruppe.

Du kannst Aggregationen zusammen mit Window-Funktionen ausführen. Eine laufende Summe mit einer Window-Funktion ist einfacher als die entsprechende Lösung mit Joins. Außerdem kann die Abfrage deutlich schneller sein.

Es steht dir eine Tabelle schedule mit den Spalten train_id, station, time und diff_min zur Verfügung. Die Spalte diff_min gibt die verstrichene Zeit zwischen dem aktuellen Bahnhof und dem nächsten Bahnhof auf der Linie an.

Diese Übung ist Teil des Kurses

Einführung in Spark SQL mit Python

Kurs anzeigen

Anleitung zur Übung

  • Führe eine Abfrage aus, die den Datensätzen eine zusätzliche Spalte namens running_total hinzufügt. Die Spalte running_total SUM()-miert die Differenz der Stationszeiten aus der Spalte diff_min.
  • Führe die Abfrage aus und zeige das Ergebnis an.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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()
Code bearbeiten und ausführen