quantileExactInclusive
Introduzido em: v20.1.0
Semelhante a quantileExact, esta função calcula o quantil exato de uma sequência de dados numéricos.
Esta função é equivalente a quantileExact, mas usa o método inclusivo para calcular quantis, conforme descrito no método R-7.
Ao usar esta função, o quantil é calculado de modo que a fórmula de interpolação para um dado quantil p tenha a forma: x[floor((n-1)*p)] + ((n-1)*p - floor((n-1)*p)) * (x[floor((n-1)*p)+1] - x[floor((n-1)*p)]), em que x é o array ordenado.
Para obter o valor exato, todos os valores fornecidos são combinados em um array, que depois é totalmente ordenado.
A complexidade do algoritmo de ordenação é O(N·log(N)), em que N = std::distance(first, last) comparações.
Ao usar várias funções quantile* com níveis diferentes em uma consulta, os estados internos não são combinados (ou seja, a consulta funciona com menos eficiência do que poderia).
Nesse caso, use a função quantiles.
Sintaxe
quantileExactInclusive(level)(expr)Parâmetros
level— Nível do quantil. Número de ponto flutuante constante de 0 a 1 (inclusive). Recomendamos usar um valor delevelno intervalo[0.01, 0.99].Float*
Argumentos
expr— Expressão sobre os valores da coluna que resulta em tipos de dados numéricos,DateouDateTime.(U)Int*ouFloat*ouDateouDateTime
Valor retornado
Retorna o quantil no nível especificado. Float64
Exemplos
Cálculo do quantil inclusivo exato
SELECT quantileExactInclusive(0.25)(number) FROM numbers(5);┌─quantileExactInclusive(0.25)(number)─┐
│ 1 │
└──────────────────────────────────────┘Calculando vários níveis de quantil
SELECT quantileExactInclusive(0.1)(number), quantileExactInclusive(0.9)(number) FROM numbers(10);┌─quantileExactInclusive(0.1)(number)─┬─quantileExactInclusive(0.9)(number)─┐
│ 0.8999999999999999 │ 8.1 │
└─────────────────────────────────────┴─────────────────────────────────────┘