Compartir vía


Función aggregate

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí 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