ÎncepețiÎncepe gratuit

Sume cumulative cu funcții de fereastră SQL

O funcție de fereastră funcționează similar cu o funcție de agregare, cu deosebirea că returnează un rezultat pentru fiecare rând din set de date, nu un singur rând per grup.

Poți combina agregarea cu funcțiile de fereastră. O sumă cumulativă calculată cu o funcție de fereastră este mai simplă decât varianta bazată pe joinuri, iar interogarea poate fi și mult mai rapidă.

Îți este pusă la dispoziție o tabelă numită schedule, cu coloanele train_id, station, time și diff_min. Coloana diff_min indică timpul scurs între stația curentă și stația următoare de pe linie.

Acest exercițiu face parte din cursul

Introducere în Spark SQL în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Rulează o interogare care adaugă o coloană suplimentară, numită running_total, la înregistrările din acest set de date. Coloana running_total calculează SUM() diferențelor de timp dintre stații, folosind valorile din coloana diff_min.
  • Rulează interogarea și afișează rezultatul.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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()
Editează și rulează codul