aggregate Funzione

Si applica a:check contrassegnato con sì controllo SQL di Databricks contrassegnato con sì 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