Funzione aggregata - Aggregate function

Nella gestione del database , una funzione di aggregazione o funzione di aggregazione è una funzione in cui i valori di più righe sono raggruppati insieme per formare un unico valore di riepilogo .

Le funzioni aggregate comuni includono:

Altri includono:

  • Nanmean (significa ignorare i valori NaN, noto anche come "nil" o "null")
  • Stddev

Formalmente, una funzione aggregata prende come input un set , un multiset (bag) o una lista da un dominio di input I e restituisce un elemento di un dominio di output O . I domini di input e output possono essere gli stessi, come per SUM, o possono essere diversi, come per COUNT.

Le funzioni aggregate si verificano comunemente in numerosi linguaggi di programmazione , nei fogli di calcolo e nell'algebra relazionale .

La listaggfunzione, come definita nello standard SQL:2016 , aggrega i dati da più righe in un'unica stringa concatenata.

Funzioni aggregate scomponibili

Le funzioni di aggregazione presentano un collo di bottiglia , perché potenzialmente richiedono di avere tutti i valori di input contemporaneamente. Nel calcolo distribuito , è desiderabile dividere tali calcoli in parti più piccole e distribuire il lavoro, solitamente calcolando in parallelo , tramite un algoritmo divide et impera .

Alcune funzioni aggregate possono essere calcolate calcolando l'aggregato per sottoinsiemi e quindi aggregando questi aggregati; esempi includono COUNT, MAX, MIN,e SUM. In altri casi l'aggregato può essere calcolato calcolando numeri ausiliari per sottoinsiemi, aggregando questi numeri ausiliari, e infine calcolando il numero complessivo alla fine; gli esempi includono AVERAGE(monitoraggio somma e conteggio, dividendo alla fine) e RANGE(monitoraggio massimo e minimo, sottrazione alla fine). In altri casi l'aggregato non può essere calcolato senza analizzare l'intero insieme in una volta, sebbene in alcuni casi possano essere distribuite approssimazioni; esempi includono DISTINCT COUNT, MEDIAN,e MODE.

Tali funzioni sono chiamate funzioni di aggregazione scomponibili o funzioni di aggregazione scomponibili . Le più semplici possono essere chiamate funzioni di aggregazione auto-scomponibili , che sono definite come quelle funzioni f tali che esiste un operatore di unione tale che

dove è l'unione di multiinsiemi (vedi omomorfismo monoide ).

Ad esempio SUM:

, per un single;
, il che significa che l'unione è semplicemente un'aggiunta.

COUNT:

,
.

MAX:

,
.

MIN:

,
.

Si noti che le funzioni di aggregazione auto-scomponibili possono essere combinate (formalmente, prendendo il prodotto) applicandole separatamente, così ad esempio si possono calcolare sia the SUMe COUNTallo stesso tempo, tracciando due numeri.

Più in generale, si può definire una funzione di aggregazione f scomponibile come una che può essere espressa come la composizione di una funzione finale g e una funzione di aggregazione autoscomponibile h , . Ad esempio, = / e = − . AVERAGESUMCOUNTRANGEMAXMIN

Nel framework MapReduce , questi passaggi sono noti come InitialReduce (valore sul singolo record/set di singleton), Combine (unione binaria su due aggregazioni) e FinalReduce (funzione finale sui valori ausiliari) e spostamento dell'aggregazione scomponibile prima che sia nota la fase Shuffle come passaggio InitialReduce,

Le funzioni di aggregazione scomponibili sono importanti nell'elaborazione analitica in linea (OLAP), poiché consentono di calcolare le query di aggregazione sui risultati precalcolati nel cubo OLAP , anziché sui dati di base. Ad esempio, è facile da supportare COUNT, MAX, MIN,e SUMin OLAP, poiché questi possono essere calcolati per ogni cella del cubo OLAP e quindi riassunti ("arrotondati"), ma è difficile da supportare MEDIAN, poiché deve essere calcolato separatamente per ogni vista .

Altre funzioni aggregate scomponibili

Per calcolare la media e la deviazione standard dai dati aggregati è necessario avere a disposizione per ogni gruppo: il totale dei valori (Σx i = SUM(x)), il numero dei valori (N=COUNT(x)) e il totale dei quadrati dei valori (Σx i 2 =SOMMA(x 2 )) di ciascun gruppo.

AVG:

.

o

.

oppure, solo se COUNT(X)=COUNT(Y)

.


SUM(x2): La somma dei quadrati dei valori è importante per calcolare la deviazione standard dei gruppi


STDDEV:
Per una popolazione finita con probabilità uguali in tutti i punti, abbiamo

Ciò significa che la deviazione standard è uguale alla radice quadrata della differenza tra la media dei quadrati dei valori e il quadrato del valore medio.

.
.

Guarda anche

Riferimenti

citazioni

Bibliografia

Ulteriori letture

link esterno