IniziaInizia gratis

Somme progressive con le funzioni finestra in SQL

Una funzione finestra è simile a una funzione di aggregazione, ma restituisce un output per ogni riga dell'insieme di dati invece di una singola riga per gruppo.

Puoi fare aggregazioni insieme alle funzioni finestra. Una somma progressiva usando una funzione finestra è più semplice rispetto a usare join. Anche la durata della query può essere molto più rapida.

È disponibile una tabella chiamata schedule, con le colonne train_id, station, time e diff_min. La colonna diff_min indica il tempo trascorso tra la stazione corrente e la stazione successiva sulla linea.

Questo esercizio fa parte del corso

Introduzione a Spark SQL in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Esegui una query che aggiunga una colonna aggiuntiva ai record di questo insieme di dati chiamata running_total. La colonna running_total effettua il SUM() della differenza tra gli orari delle stazioni indicata nella colonna diff_min.
  • Esegui la query e visualizza il risultato.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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()
Modifica ed esegui il codice