Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesTDigest

quantilesTDigest

Introduzido em: v1.1.0

Calcula simultaneamente vários quantis aproximados de uma sequência de dados numéricos em diferentes níveis usando o algoritmo t-digest.

Esta função é equivalente a quantileTDigest, 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.

O consumo de memória é log(n), em que n é o número de valores. O resultado depende da ordem de execução da consulta e é não determinístico.

O desempenho desta função é inferior ao de quantiles ou quantilesTiming. Em termos da razão entre o tamanho do estado e a precisão, esta função é muito melhor que quantiles.

Sintaxe

quantilesTDigest(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

  • expr — Expressão sobre os valores da coluna que resulta em tipos de dado numéricos, Date ou DateTime. (U)Int* ou Float* ou Date ou DateTime

Valor retornado

Array de quantis aproximados dos níveis especificados, na mesma ordem em que foram especificados. Para entradas Date e DateTime, o formato de saída corresponde ao formato de entrada. Array(Float32) ou Array(Date) ou Array(DateTime)

Exemplos

Cálculo de vários quantis com 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