Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesTDigest

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 de level dentro 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, Date o DateTime. (U)Int* o Float* o Date o DateTime

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]                                │
└───────────────────────────────────────────┘
Navigation