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
- Tavola incrociata alias Contingency table
- Perforazione dei dati
- Estrazione dei dati
- Elaborazione dati
- Estrai, trasforma, carica
- Piega (funzione di ordine superiore)
- Raggruppa per (SQL) , clausola SQL
- Cubo OLAP
- Processo di analisi online
- Tabella pivot
- algebra relazionale
- Funzioni di utilità su beni indivisibili#Aggregati di funzioni di utilità
- XML per l'analisi
- AggregatoIQ
Riferimenti
citazioni
Bibliografia
- Yu, Yuan; Gunda, Pradeep Kumar; Isard, Michael (2009). Aggregazione distribuita per l'elaborazione parallela dei dati: interfacce e implementazioni . ACM SIGOPS 22° simposio sui principi dei sistemi operativi. ACM . pp. 247-260. doi : 10.1145/1629575.1629600 .
- Gesù, Paolo; Baquero, Carlos; Almeida, Paulo Sergio (2011). "Un'indagine sugli algoritmi di aggregazione dei dati distribuiti". arXiv : 1110.0725 [ cs.DC ].
- Zhang, Chao (2017). Funzione di aggregazione simmetrica e asimmetrica nel calcolo massivo parallelo (relazione tecnica).
Ulteriori letture
- Grabisch, Michel; Marichal, Jean-Luc; Mesiar, Radko; Pap, Endre (2009). Funzioni di aggregazione . Enciclopedia della matematica e sue applicazioni. 127 . Cambridge: Pressa dell'università di Cambridge . ISBN 978-0-521-51926-7. Zbl 1196.00002 .
- Funzioni di aggregazione Oracle: esempi MAX, MIN, COUNT, SUM, AVG