Riepilogo: in questo tutorial imparerai come utilizzare lSQL PARTITION BY
per modificare il modo in cui la funzione finestra calcola il risultato.
Panoramica della clausola SQL PARTITION BY
La clausola PARTITION BY
è una clausola secondaria di la clausola OVER
. La clausola PARTITION BY
divide il set di risultati di una query in partizioni. La funzione finestra viene gestita separatamente su ciascuna partizione e viene ricalcolata per ciascuna partizione.
Quanto segue mostra la sintassi della clausola PARTITION BY
:
È possibile specificare una o più colonne o espressioni per partizionare il set di risultati. expression1
, expression1
e così via possono fare riferimento solo alle colonne derivate da FROM
clausola. Non possono fare riferimento a espressioni o alias nellelenco di selezione.
Le espressioni della clausola PARTITION BY
possono essere espressioni di colonna, sottoquery scalare o funzione scalare. Nota che una sottoquery scalare e una funzione scalare restituiscono sempre un singolo valore.
Se ometti la clausola PARTITION BY
, lintero set di risultati viene trattato come una singola partizione.
PARTITION BY e GROUP BY
La clausola GROUP BY
viene utilizzata spesso insieme a una funzione di aggregazione come SUM()
e AVG()
. La clausola GROUP BY
riduce il numero di righe restituite arrotolandole e calcolando le somme o le medie per ogni gruppo.
Ad esempio, la seguente istruzione restituisce la media stipendio dei dipendenti per reparti:
La figura seguente mostra il risultato:
La clausola PARTITION BY
divide il set di risultati in partizioni e cambia il modo in cui viene calcolata la funzione della finestra. La clausola PARTITION BY
non riduce il numero di righe restituite.
La seguente istruzione restituisce lo stipendio del dipendente e anche lo stipendio medio del dipartimento del dipendente:
Ecco loutput parziale:
In parole semplici, la clausola GROUP BY
è aggregata mentre la clausola PARTITION BY
è analitica.
In questo tutorial, hai imparato a conoscere la clausola SQL PARTITION BY
che cambia il modo in cui viene calcolato il risultato della funzione finestra.
- Questo tutorial è stato utile?
- SìNo