aggregate
Funzione
Si applica a: controllo SQL di Databricks Databricks Runtime
Aggrega gli elementi in una matrice usando un aggregatore personalizzato. Questa funzione è un sinonimo della funzione di riduzione.
Sintassi
aggregate(expr, start, merge [, finish])
Argomenti
expr
: espressione ARRAY.start
: valore iniziale di qualsiasi tipo.merge
: funzione lambda usata per aggregare l'elemento corrente.finish
: funzione lambda facoltativa usata per finalizzare l'aggregazione.
Restituisce
Il tipo di risultato corrisponde al tipo di risultato della finish
funzione lambda, se esistente o start
.
Applica un'espressione a uno stato iniziale e a tutti gli elementi della matrice e ne riduce uno stato singolo. Lo stato finale viene convertito nel risultato finale applicando una finish
funzione.
La merge
funzione accetta due parametri. Primo oggetto dell'accumulatore, il secondo elemento da aggregare.
L'accumulatore e il risultato devono essere di tipo start
.
La funzione facoltativa finish
accetta un parametro e restituisce il risultato finale.
Esempi
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x);
6
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x, acc -> acc * 10);
60
> SELECT aggregate(array(1, 2, 3, 4),
named_struct('sum', 0, 'cnt', 0),
(acc, x) -> named_struct('sum', acc.sum + x, 'cnt', acc.cnt + 1),
acc -> acc.sum / acc.cnt) AS avg
2.5