quantileDeterministic
Introducido en: v1.1.0
Calcula un cuantil aproximado de una secuencia de datos numéricos.
Esta función aplica muestreo de reservorio con un tamaño de reservorio de hasta 8192 y un algoritmo de muestreo determinista.
El resultado es determinista.
Para obtener un cuantil exacto, use la función quantileExact.
Al usar varias funciones quantile* con distintos niveles en una consulta, los estados internos no se combinan (es decir, la consulta funciona con menos eficiencia de la que podría).
En este caso, use la función quantiles.
Sintaxis
quantileDeterministic(level)(expr, determinator)Alias: medianDeterministic
Parámetros
level— Opcional. Nivel del cuantil. Número de coma flotante constante entre 0 y 1. Recomendamos usar un valor delevelen el intervalo[0.01, 0.99]. Valor predeterminado: 0.5. Conlevel=0.5, la función calcula la mediana.Float*
Argumentos
expr— Expresión sobre los valores de la columna que da como resultado tipos de datos numéricos,DateoDateTime.(U)Int*oInt128oUInt128oInt256oUInt256oFloat*oDateoDateTimedeterminator— Número cuyo hash se usa en lugar de un generador de números aleatorios en el algoritmo de muestreo por reservorio para que el resultado del muestreo sea determinista. Como determinador, puede usar cualquier número positivo determinista, por ejemplo, un id de usuario o un id de evento. Si el mismo valor del determinador aparece con demasiada frecuencia, la función produce resultados incorrectos.UInt*
Valor devuelto
Devuelve un cuantil aproximado del nivel especificado. Float64 o Date o DateTime
Ejemplos
Cálculo de un cuantil determinista
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3);
SELECT quantileDeterministic(val, 1) FROM t;┌─quantileDeterministic(val, 1)─┐
│ 1.5 │
└───────────────────────────────┘Véase también