Funciones de agregación

A diferencia de las funciones regulares que funcionaban como si se aplicaran a cada fila por separado, las funciones agregadas acumulan valores de varias filas (es decir, dependen de todo el conjunto de filas).

Función Descripción

count()

Cuenta el número de filas. Acepta cero argumentos y devuelve UInt64. La sintaxis COUNT (DISTINCT x) no es compatible. La función de agregación uniq separada sirve para este propósito.

Las sentencias SELECT count() FROM table no están optimizada, porque el número de entradas en la tabla no se almacena por separado. Internamente Cytomic Orion seleccionará una columna pequeña de la tabla y contará el número de valores en ella.

any(x)

Selecciona el primer valor encontrado. La consulta se puede ejecutar en cualquier orden e incluso en un orden diferente cada vez, por lo que el resultado de esta función es indeterminado. Para obtener un resultado determinado utiliza la función min o max en lugar de any.

En algunos casos el orden de ejecución es fijo, como por ejemplo en los casos en que SELECT proviene de una subconsulta que usa ORDER BY.

Cuando una consulta SELECT tiene la cláusula GROUP BY o al menos una función de agregación, Cytomic Orion requiere que todas las expresiones en las cláusulas SELECT, HAVING y ORDER BY se calculen a partir de las funciones agregadas, es decir, cada columna seleccionada de la tabla debe usarse en claves o dentro de funciones e agregación.

anyHeavy(x)

Selecciona un valor que se ocurre produce con frecuencia. Si hay un valor que ocurre más que en la mitad de los casos en cada uno de los hilos de ejecución de la consulta, se devuelve este valor. Normalmente, el resultado no es determinista.

anyLast(x)

Selecciona el último valor encontrado.

min(x)

Devuelve el valor mínimo.

max(x)

Devuelve el valor máximo.

argMin(arg, val)

Calcula el valor arg para un valor val mínimo. Si hay varios valores diferentes de arg para valores mínimos de val, el primero de estos valores encontrados es la salida.

argMax(arg, val)

Calcula el valor arg para un valor val máximo. Si hay varios valores diferentes de arg para valores máximos de val, el primero de estos valores encontrados es la salida.

sum(x)

Devuelve la suma. Solo funcionacon números.

sumWithOverflow(x)

Calcula una suma de números utilizando el mismo tipo de datos para el resultado que para los parámetros de entrada. Si la suma excede el valor máximo para ese tipo de datos, la función devuelve un error.

avg(x)

Calcula la media. Solo funciona para números. El resultado es siempre Float64.

uniq(x)

Calcula el número aproximado de valores diferentes del argumento. Funciona para números, cadenas, Dates, DateTimes y para múltiples argumentos y argumentos de tipo tupla.

El resultado es determinado (no depende del orden de procesamiento de la consulta).

uniqExact(x)

Calcula el número de valores diferentes del argumento con precisión y sin aproximaciones. Se recomienda utilizar la función uniq. Utiliza la función uniqExact si necesitas un resultado exacto.

quantile(level)(x)

Calcula x-ésimo cuantil de orden level. level es una constante y un número en coma flotante entre 0 a 1.

Si se omite el parámetro level se toma por defecto 0.5 (cálculo de la mediana).

Esta función acepta números, Dates y DateTimes y devuelve:

  • Para números: Float64

  • Para Dates: Date

  • Para DateTimes: DateTime

La precisión de esta función es relativamente baja. Utiliza quantileExact(level)(x) para máxima precisión.

El resultado depende del orden de ejecución de la consulta y no es determinista.

quantileExact(level)(x)

Calcula el cuantil de level con precisión.

median(x)

Calcula la mediana.

varSamp(x)

Estimación sin sesgo de la varianza de una variable aleatoria. Los valores que se pasan como argumento representan una muestra de la población total. La función devuelve un Float64.

varPop(x)

Calcula la varianza de población pasada como argumento.

stddevSamp(x)

Estimación sin sesgo de la desviación típica de una variable aleatoria. Los valores que se pasan como argumento representan una muestra de la población total. La función devuelve un Float64.

stddevPop(x)

Calcula la desviación típica de población pasada como argumento.

covarSamp(x, y)

Estimación sin sesgo de la covarianza de dos variables aleatorias. Los valores que se pasan como argumentos representan dos muestras de la población total. La función devuelve un Float64.

covarPop(x, y)

Calculo de la covarianza de dos variables aleatorias. Los valores que se pasan como argumentos representan dos poblaciones. La función devuelve un Float64.

corr(x, y)

Calcula el índice de correlación Pearson.

Funciones de agregación