LoslegenKostenlos starten

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

<Kurs>Einführung in Spark SQL mit Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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