Panoramica delle funzioni analitiche
Si utilizzano le funzioni analitiche per calcolare aggregati cumulativi, mobili, centrati e di reportistica.
- Qual è il totale corrente?
- Quali sono le percentuali all'interno di un gruppo?
- Quali sono le prime n query?
- Che cos'è la media mobile?
- Famiglia di aggregati di reportistica/finestra
- Utilizzate le funzioni di reporting per confrontare i valori a diversi livelli di aggregazione, perché possono eseguire più passaggi sui dati in un unico blocco di query e quindi restituire lo stesso valore aggregato per ogni riga di una partizione. È possibile utilizzare le funzioni di reporting per il calcolo della percentuale sul totale e della quota di mercato. Ad esempio, potreste voler conoscere i livelli di vendita regionali in percentuale delle vendite nazionali.
Le funzioni della finestra rispondono a domande come "qual è la media mobile a 12 settimane del prezzo di un'azione?" oppure "qual è stata la somma cumulativa delle vendite per ogni regione?"
Per tutte le funzioni aggregate SQL, le funzioni di reporting forniscono l'elaborazione aggregata dei report, mentre le funzioni finestra forniscono l'elaborazione mobile e cumulativa. Queste funzioni aggregate SQL includono: avg, 'sum, 'min, 'median, 'max, 'count, 'variance e 'stddev, tuttavia la funzione mediana() non è supportata come aggregato a finestra.
- Famiglia Lag/Lead
- Utilizzate queste funzioni per confrontare righe diverse di una tabella specificando un offset dalla riga corrente. È possibile utilizzare queste funzioni per analizzare i cambiamenti e le variazioni. Le funzioni comprendono il ritardo e il vantaggio.
- Prima/ultima famiglia
- Utilizzare queste funzioni per specificare gruppi di aggregati ordinati e restituire il primo o l'ultimo valore di ciascun gruppo. Ad esempio, è possibile interrogare gli estratti conto bancari per conoscere i saldi mensili iniziali e finali. Queste funzioni includono 'first_value e 'last_value.
- Classifica famiglia
- Queste funzioni aiutano a rispondere a domande come "quali sono i 10 articoli più venduti e quelli meno venduti?" Le funzioni esaminano l'intero output prima di visualizzare una risposta. Queste funzioni includono " ntile, " dense_rank, " percent_rank, " cume_dist e " rank.
- Famiglia del conteggio delle righe
- La funzione 'row_number assegna un numero a ogni riga in base alla sua posizione all'interno della partizione della finestra. È simile a 'dense_rank e 'rank, ma a differenza delle funzioni 'rank, conta i legami (righe di pari livello, cioè righe che corrispondono alla colonna order by).
- Famiglia di set ipotetici
- Queste funzioni forniscono il grado o il percentile che una riga avrebbe se inserita in un set di dati specificato. Queste funzioni includono " dense_rank, " percent_rank, " cume_dist e " rank.
- Famiglia di funzioni di distribuzione inverse
- Queste funzioni forniscono il valore in un set di dati che corrisponde a un percentile specificato. Queste funzioni includono 'percentile_cont e 'percentile_disc, ma queste due funzioni non sono supportate come aggregati di finestre.