Začněte nyníZačněte zdarma

Průběžné součty pomocí okenní funkce v SQL

Okenní funkce funguje podobně jako agregační funkce – s tím rozdílem, že vrací výsledek pro každý řádek v datové sadě, nikoli jediný řádek za skupinu.

Aggregaci lze kombinovat s okenními funkcemi. Průběžný součet pomocí okenní funkce je jednodušší než řešení přes joiny a dotaz může být také výrazně rychlejší.

K dispozici máš tabulku schedule se sloupci train_id, station, time a diff_min. Sloupec diff_min udává uplynulý čas mezi aktuální stanicí a následující stanicí na lince.

Toto cvičení je součástí kurzu

Úvod do Spark SQL v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Spusť dotaz, který k záznamům v této datové sadě přidá nový sloupec running_total. Sloupec running_total vypočítá SUM() rozdílů mezi časy stanic ze sloupce diff_min.
  • Spusť dotaz a zobraz výsledek.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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()
Upravit a spustit kód