aggregate função

Aplica-se a:verificar a verificação sim Databricks SQL marcada como sim Databricks Runtime

Agrega elementos numa matriz com um agregador personalizado. Esta função é um sinónimo para a função de redução.

Sintaxe

aggregate(expr, start, merge [, finish])

Argumentos

  • expr: uma expressão MATRIZ.
  • start: um valor inicial de qualquer tipo.
  • merge: uma função lambda utilizada para agregar o elemento atual.
  • finish: uma função lambda opcional utilizada para finalizar a agregação.

Devoluções

O tipo de resultado corresponde ao tipo de resultado da finish função lambda, se existir ou start.

Aplica uma expressão a um estado inicial e a todos os elementos na matriz e reduz-a a um único estado. O estado final é convertido no resultado final ao aplicar uma finish função.

A merge função utiliza dois parâmetros. O primeiro é o acumulador, o segundo o elemento a ser agregado. O acumulador e o resultado têm de ser do tipo de start. A função opcional finish utiliza um parâmetro e devolve o resultado final.

Exemplos

> 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