Menu
CoddyTech

Funzioni di aggregazione

Fa parte della sezione Fondamenti del percorso SQL di Coddy. Lezione 68 di 72.

Con OVER (ORDER BY ...), le funzioni di aggregazione come AVG() o MAX() vengono calcolate sulle righe fino alla riga corrente inclusa, comprese le righe che hanno lo stesso valore di ORDER BY. Senza ORDER BY all'interno di OVER, vengono calcolate su tutte le righe, quindi ogni riga ottiene lo stesso valore.
Ad esempio, potremmo calcolare il ricavo massimo ottenuto fino a ciascun periodo conclusivo:

monthrevenueregion
440East
520East
660West
755West
861East
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1

Questo restituirà:

mesericavimax_revenue
44040
52040
66060
75560
86161

Per i mesi 4 e 5 il ricavo massimo è 40, per i mesi 6 e 7 è 60 e per il mese 8 è 61. Questo perché, quando trova un nuovo ricavo più alto, scarta quello precedente e usa il più alto trovato finora.

Per la funzione AVG(), apparirà così:

SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1
mesericaviavg_revenue
44040
52030
66040
75543.75
86147.2

Possiamo anche raggruppare i nostri calcoli per categorie specifiche usando PARTITION BY. Per esempio:

SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1

Ci darebbe:

mesericaviregionemax_revenue
440East40
520East40
660West60
755West60
861East61

Ora il massimo viene calcolato separatamente per ogni regione. Le regioni Est e Ovest mantengono ciascuna il proprio massimo progressivo in modo indipendente.

challenge icon

Sfida

Facile

Tabelle e colonne disponibili:

  • books: book, page, words

Per ogni libro, mostra il nome del libro, il numero totale di pagine, il numero di parole su ogni pagina e calcola:

  1. Il numero massimo di parole presenti in una pagina di quel libro
  2. Il numero medio di parole per pagina per l'intero libro
  3. La differenza tra il numero di parole della pagina corrente e il numero medio di parole per pagina del libro

Mostra i risultati ordinati per libro e numero di pagina.

Restituisci le seguenti colonne:

  • book
  • page
  • words
  • max_words_in_book
  • avg_words_per_page
  • diff_from_avg

Provalo tu

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 Fondamenti

Esercitati da solo: Playground SQL