Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Función
Se aplica a:
Databricks SQL
Databricks Runtime
Agrega elementos de una matriz mediante un agregador personalizado. Esta función es un sinónimo de aggregate función.
Sintaxis
reduce(expr, start, merge [, finish] )
Argumentos
-
expr: una expresiónARRAY. -
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 reduce(array(1, 2, 3), 0, (acc, x) -> acc + x);
6
> SELECT reduce(array(1, 2, 3), 0, (acc, x) -> acc + x, acc -> acc * 10);
60
> SELECT reduce(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