quantiles
Introducido en: v1.1.0
Calcula simultáneamente varios cuantiles aproximados de una secuencia de datos numéricos en distintos niveles.
Esta función aplica muestreo de reservorio con un reservorio de hasta 8192 elementos y un generador de números aleatorios para el muestreo. El resultado no es determinista.
Usar quantiles es más eficiente que llamar a varias funciones quantile individuales cuando necesitas varios valores de cuantiles, ya que todos los cuantiles se calculan en una sola pasada sobre los datos.
Sintaxis
quantiles(level1, level2, ...)(expr)Parámetros
level— Niveles de cuantiles. Uno o más números de coma flotante constantes entre 0 y 1. Recomendamos usar valores delevelen el 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,DateTimeoDateTime64.(U)Int*oInt128oUInt128oInt256oUInt256oFloat*oDecimal*oDateoDateTimeoDateTime64
Valor devuelto
Array de cuantiles aproximados de los niveles especificados, en el mismo orden en que se especificaron. Los argumentos numéricos producen Float64, mientras que los argumentos Decimal, Date, DateTime y DateTime64 conservan su formato de entrada. Array(Float64) o Array(Decimal*) o Array(Date) o Array(DateTime) o Array(DateTime64)
Ejemplos
Cálculo eficiente de múltiples cuantiles
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
SELECT quantiles(0.25, 0.5, 0.75, 0.9)(val) FROM t;┌─quantiles(0.25, 0.5, 0.75, 0.9)(val)─┐
│ [2.5,5,7.5,9] │
└──────────────────────────────────────┘