quantilesTDigestWeighted
Introducido en: v20.1.0
Calcula simultáneamente varios cuantiles aproximados de una secuencia de datos numéricos en distintos niveles mediante el algoritmo t-digest. La función tiene en cuenta el peso de cada elemento de la secuencia.
Esta función es equivalente a quantileTDigestWeighted, pero permite calcular varios niveles de cuantiles en una sola pasada, lo que resulta más eficiente que llamar a funciones de cuantiles por separado.
El error máximo es del 1 %. El consumo de memoria es log(n), donde n es el número de valores.
El rendimiento de esta función es inferior al de quantiles o quantilesTiming.
En cuanto a la relación entre el tamaño del estado y la precisión, esta función es mucho mejor que quantiles.
El resultado depende del orden de ejecución de la consulta y no es determinista.
Sintaxis
quantilesTDigestWeighted(level1, level2, ...)(expr, weight)Parámetros
level— Niveles de cuantiles. Uno o más números constantes de coma flotante entre 0 y 1. Recomendamos usar valores delevelen el intervalo[0.01, 0.99].Float*
Argumentos
expr— Expresión sobre los valores de la columna que produce tipos de datos numéricos,DateoDateTime.(U)Int*oFloat*oDateoDateTimeweight— Columna con pesos de los elementos de la secuencia. El peso es el número de apariciones de un valor.UInt*
Valor devuelto
Array de cuantiles aproximados de los niveles especificados en el mismo orden en que se indicaron. 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 varios cuantiles ponderados con t-digest
SELECT quantilesTDigestWeighted(0.25, 0.5, 0.75)(number, 1) FROM numbers(100);┌─quantilesTDigestWeighted(0.25, 0.5, 0.75)(number, 1)─┐
│ [24,49,74] │
└──────────────────────────────────────────────────────┘