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 delevelno intervalo[0.01, 0.99].Float*
Argumentos
expr— Expressão sobre os valores da coluna que resulta em tipos de dado numéricos,DateouDateTime.(U)Int*ouFloat*ouDateouDateTime
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] │
└───────────────────────────────────────────┘