Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileDeterministic

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 de level en el intervalo [0.01, 0.99]. Valor predeterminado: 0.5. Con level=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, Date o DateTime. (U)Int* o Int128 o UInt128 o Int256 o UInt256 o Float* o Date o DateTime
  • determinator — 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

Navigation