Menu
CoddyTech

Totale progressivo

Fa parte della sezione Oltre le basi del percorso SQL di Coddy. Lezione 25 di 27.

Un totale progressivo (cumulativo) è SUM su una finestra con ORDER BY: questo trasforma l'aggregazione in una che cresce riga per riga.

SELECT day, amount,
       SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenue

Senza ORDER BY, la finestra copre ogni riga e otterresti il totale complessivo su ogni riga. Con essa, la finestra si espande una riga alla volta in quell’ordine, così ogni riga vede solo sé stessa e tutto ciò che la precede.

Aggiungi un PARTITION BY per azzerare il totale progressivo per gruppo, ad esempio il totale progressivo dei ricavi per regione, giorno per giorno.

challenge icon

Sfida

Facile

Tabelle e colonne disponibili:

  • revenue: region, day, amount

Restituisci region, day, amount e region_running_total: il valore cumulativo di amount per quella regione fino a questo giorno incluso. Il totale progressivo dovrebbe azzerarsi per ogni regione.

Usa PARTITION BY sulla finestra. Ordina per region, poi per day.

Provalo tu

SELECT region, day, amount,
       -- aggiungi qui la colonna region_running_total
FROM revenue
ORDER BY region, day
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Oltre le basi

Esercitati da solo: Playground SQL