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 revenueSenza 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.
Sfida
FacileTabelle 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
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Oltre le basi
2Funzioni sulle stringhe
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE e TRIMConcatenare con ||Ripasso - Fatture3Aggregazione condizionale
COUNT con CASESUM con CASETrasformare le righe in colonneRiepilogo - Fonti di traffico6Ricette di analisi dei dati
Top-N per gruppoPercentuale del totaleTotale progressivoMantenere una riga per chiaveRiepilogo - Clienti principaliEsercitati da solo: Playground SQL