Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funções quantiles

quantiles

Introduzido em: v1.1.0

Calcula vários quantis aproximados de uma sequência de dados numéricos em diferentes níveis ao mesmo tempo.

Esta função aplica amostragem por reservatório, com tamanho de reservatório de até 8192, e um gerador de números aleatórios para a amostragem. O resultado não é determinístico.

Usar quantiles é mais eficiente do que chamar várias funções quantile individualmente quando você precisa de vários valores de quantil, pois todos os quantis são calculados em uma única passagem pelos dados.

Sintaxe

quantiles(level1, level2, ...)(expr)

Parâmetros

  • level — Níveis dos quantis. Um ou mais números de ponto flutuante constantes entre 0 e 1. Recomendamos usar valores de level no intervalo [0.01, 0.99]. Float*

Argumentos

Valor retornado

Array de quantis aproximados dos níveis especificados, na mesma ordem em que os níveis foram especificados. Argumentos numéricos produzem Float64, enquanto argumentos Decimal, Date, DateTime e DateTime64 mantêm seu formato de entrada. Array(Float64) ou Array(Decimal*) ou Array(Date) ou Array(DateTime) ou Array(DateTime64)

Exemplos

Calculando vários quantis com eficiência

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