Función aggregate
Se aplica a: Databricks SQL Databricks Runtime
Agrega elementos de una matriz mediante un agregador personalizado. Esta función es sinónimo de la función reduce.
Sintaxis
aggregate(expr, start, merge [, finish])
Argumentos
expr
: expresión ARRAY.start
: valor inicial de cualquier tipo.merge
: función lambda que se usa para agregar el elemento actual.finish
: función lambda opcional que se usa para finalizar la agregación.
Devoluciones
El tipo de resultado coincide con el tipo de resultado de la función lambda finish
si existe o start
.
Aplica una expresión a un estado inicial y a todos los elementos de la matriz, y lo reduce a un único estado. El estado final se convierte en el resultado final aplicando una función finish
.
La función merge
adopta dos parámetros. El primero es el acumulador, el segundo el elemento que se va a agregar.
El acumulador y el resultado deben ser del tipo de start
.
La función finish
opcional toma un parámetro y devuelve el resultado final.
Ejemplos
> 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