quantilesTDigest
Disponible desde: v1.1.0
Calcula simultáneamente varios cuantiles aproximados de una secuencia de datos numéricos en distintos niveles mediante el algoritmo t-digest.
Esta función es equivalente a quantileTDigest, pero permite calcular varios niveles de cuantil en una sola pasada, lo que es más eficiente que llamar a funciones de cuantil por separado.
El consumo de memoria es log(n), donde n es el número de valores. El resultado depende del orden de ejecución de la consulta y es no determinista.
El rendimiento de esta función es inferior al de quantiles o quantilesTiming. En cuanto a la relación entre el tamaño del State y la precisión, esta función es mucho mejor que quantiles.
Sintaxis
quantilesTDigest(level1, level2, ...)(expr)Parámetros
level— Niveles de los cuantiles. Uno o más números constantes de coma flotante de 0 a 1. Recomendamos usar valores deleveldentro del rango[0.01, 0.99].Float*
Argumentos
expr— Expresión sobre los valores de la columna que da como resultado tipos de datos numéricos,DateoDateTime.(U)Int*oFloat*oDateoDateTime
Valor devuelto
Array de cuantiles aproximados de los niveles especificados, en el mismo orden en que se especificaron dichos niveles. Para entradas Date y DateTime, el formato de salida coincide con el formato de entrada. Array(Float32) o Array(Date) o Array(DateTime)
Ejemplos
Cálculo de múltiples cuantiles con t-digest
SELECT quantilesTDigest(0.25, 0.5, 0.75)(number) FROM numbers(100);┌─quantilesTDigest(0.25, 0.5, 0.75)(number)─┐
│ [24,49,74] │
└───────────────────────────────────────────┘