Menu
Coddy logo textTech

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'aggregato in uno 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 esso, la finestra si espande una riga alla volta in quell'ordine, quindi 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 includere questo giorno. Il totale progressivo dovrebbe azzerarsi per ogni regione.

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

Provalo tu

SELECT region, day, amount,
       -- SUM(amount) OVER (PARTITION BY region ORDER BY day)
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