Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesExact

quantilesExact

Introduzido em: v1.1.0

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

Esta função é equivalente a quantileExact, mas permite calcular vários níveis de quantil em uma única passagem, o que é mais eficiente do que chamar funções de quantil individualmente.

Para obter valores exatos, todos os valores fornecidos são combinados em um array, que depois é parcialmente ordenado. Portanto, a função consome memória O(n), em que n é o número de valores fornecidos.

Sintaxe

quantilesExact(level1, level2, ...)(expr)

Parâmetros

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

Argumentos

Valor retornado

Array de quantis dos níveis especificados, na mesma ordem em que os níveis foram informados. Para tipos de dado numérico, o formato de saída corresponde ao formato de entrada. Array((U)Int*) ou Array(Int128) ou Array(UInt128) ou Array(Int256) ou Array(UInt256) ou Array(Float*) ou Array(Decimal*) ou Array(Date) ou Array(DateTime) ou Array(DateTime64)

Exemplos

Calculando vários quantis exatos

SELECT quantilesExact(0.25, 0.5, 0.75)(number) FROM numbers(10)
┌─quantilesExact(0.25, 0.5, 0.75)(number)─┐
│ [2,5,7]                                 │
└─────────────────────────────────────────┘
Navigation