Funzioni Analitiche

Funzioni Analitiche
  • 3
    Dic

Funzioni Analitiche

twittergoogle_pluslinkedin

Le funzioni analitiche consentono di applicare funzioni di grouping ad un subset di record, e anche di ordinare il result set usando specifici valori.
Le funzioni analitiche sono spesso usate per il calcolo cumulativo e per l’aggregazione delle informazioni nella creazione di report.
Le funzioni analitiche possono apparire solo nella select list o nella clausola ORDER BY.

OVER()
Nella clausola OVER bisogna inserire il campo (o i campi) a cui si applica la funzione (sum,count,ecc.)
Se non viene specificato alcun argomento, il set considerato sarà lo stesso della tabella di origine.

Esempio
SELECT SUM(misura) OVER () … same as SELECT SUM(misura) …

Si può anche usare ORDER BY come argomento della funzione OVER, in modo da ottenere un set di dati aggregato ed ordinato.
Nell’esempio successivo il result set contiene la somma del campo “misura” ordinato secondo i valori dei campi dimensione_1, dimensione_2.

SELECT SUM(misura) OVER (ORDER BY dimensione_1, dimensione_2) …

Il prossimo esempio restituirà la somma del campo “venduto” ordinato per valori di anno e mese.

SELECT SUM(venduto) OVER (ORDER BY anno, mese) sc_venduto FROM vendite;

Se si desidera partizionare il result set della query in gruppi basati su uno o più valori, si può usare la clausola PARTITION BY.
Omettendo questa clausola, la funzione considererà tutte le righe del result set come un singolo gruppo.

L’esempio restituirà la somma dei valori di “venduto” raggruppati secondo “cd_negozio”

SELECT SUM(venduto) OVER(PARTITION BY cd_negozio) FROM vendite;

Usando sia ORDER BY che PARTITION BY, si può ottenere un result set ordinato e partizionato
.
SELECT SUM(venduto) OVER(
PARTITION BY cd_negozio
ORDER BY anno, mese
) sc_venduto
FROM vendite;