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 delevelno intervalo[0.01, 0.99].Float*
Argumentos
expr— Expressão sobre os valores da coluna que resulta em um tipo de dado numérico,Date,DateTimeouDateTime64.(U)Int*ouInt128ouUInt128ouInt256ouUInt256ouFloat*ouDecimal*ouDateouDateTimeouDateTime64
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] │
└─────────────────────────────────────────┘