- Funciones de agregación paramétricas, que aceptan otros parámetros además de las columnas.
- Combinadores, que cambian el comportamiento de las funciones de agregación.
Procesamiento de NULL
NULL. Si la agregación tiene varios argumentos, se ignorará cualquier fila en la que uno o más de ellos sean NULL.
Hay una excepción a esta regla: las funciones first_value, last_value y sus alias (any y anyLast, respectivamente) cuando van seguidas del modificador RESPECT NULLS. Por ejemplo, FIRST_VALUE(b) RESPECT NULLS.
Ejemplos:
Considere la siguiente tabla:
y:
groupArray para crear un array a partir de la columna y:
groupArray no incluye NULL en el array resultante.
Puedes usar COALESCE para convertir NULL en un valor que tenga sentido en tu caso de uso. Por ejemplo: avg(COALESCE(column, 0)) usará el valor de la columna en la agregación, o cero si es NULL:
NULL. Un Tuple que contiene solo un valor NULL no es NULL, por lo que las funciones de agregación no omitirán esa fila por ese valor NULL.
count sin parámetros (count()) o con parámetros constantes (count(1)) contará todas las filas del bloque (independientemente del valor de la columna de GROUP BY, ya que no es un argumento), mientras que count(column) solo devolverá el número de filas en las que column no es NULL.
RESPECT NULLS, donde podemos ver que se respetan los valores de entrada NULL y que devolverá el primer valor leído, sea NULL o no: