Panoramica delle funzioni analitiche

Si utilizzano le funzioni analitiche per calcolare aggregati cumulativi, mobili, centrati e di reportistica.

Le funzioni analitiche calcolano un valore aggregato basato su un gruppo di righe. Ma a differenza delle funzioni aggregate, esse restituiscono più righe per ogni gruppo. Le funzioni analitiche rispondono alle seguenti domande:
  • Qual è il totale corrente?
  • Quali sono le percentuali all'interno di un gruppo?
  • Quali sono le prime n query?
  • Che cos'è la media mobile?
Le funzioni SQL di Netezza Performance Server possono essere suddivise nelle seguenti famiglie. Alcune funzioni sono utilizzate in più di una famiglia:
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.