quantileExactExclusive
Introduzido em: v20.1.0
Semelhante a quantileExact, calcula o quantil exato de uma sequência de dados numéricos.
Esta função é equivalente a quantileExact, mas usa o método exclusivo para calcular quantis, conforme descrito no método R-6.
Ao usar esta função, o quantil é calculado de modo que a fórmula de interpolação para um determinado quantil p assume a forma: x[floor(n*p)] + (n*p - floor(n*p)) * (x[floor(n*p)+1] - x[floor(n*p)]), em que x é o array ordenado.
Para obter o valor exato, todos os valores fornecidos são combinados em um array, que então é totalmente ordenado.
A complexidade do algoritmo de ordenação é de O(N·log(N)) comparações, em que N = std::distance(first, last).
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
quantileExactExclusive(level)(expr)Parâmetros
level— Nível do quantil. Número de ponto flutuante constante de 0 a 1 (exclusivo). 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 do nível especificado. Float64
Exemplos
Cálculo do quantil exclusivo exato
SELECT quantileExactExclusive(0.25)(number) FROM numbers(5);┌─quantileExactExclusive(0.25)(number)─┐
│ 0.5 │
└──────────────────────────────────────┘Computando múltiplos níveis de quantil
SELECT quantileExactExclusive(0.1)(number), quantileExactExclusive(0.9)(number) FROM numbers(10);┌─quantileExactExclusive(0.1)(number)─┬─quantileExactExclusive(0.9)(number)─┐
│ 0.10000000000000009 │ 8.9 │
└─────────────────────────────────────┴─────────────────────────────────────┘