quantileExactHigh
Introduzido em: v20.8.0
Semelhante a quantileExact, calcula o quantil exato de uma sequência de dados numéricos.
Para obter o valor exato, todos os valores informados são combinados em um array, que então é totalmente ordenado.
A complexidade do algoritmo de ordenação é O(N·log(N)), em que N = std::distance(first, last).
O valor de retorno depende do nível do quantil e do número de elementos na seleção; ou seja, se o nível for 0.5, a função retornará o valor mediano superior para um número par de elementos e o valor mediano central para um número ímpar de elementos.
A mediana é calculada de forma semelhante à implementação median_high, usada em Python.
Para todos os outros níveis, retorna-se o elemento no índice correspondente ao valor de level * size_of_array.
Ao usar várias funções quantile* com níveis diferentes em uma consulta, os estados internos não são combinados (isto é, a consulta é executada com menos eficiência do que poderia).
Nesse caso, use a função quantiles.
Sintaxe
quantileExactHigh(level)(expr)Aliases: medianExactHigh
Parâmetros
level— Opcional. Nível do quantil. Número de ponto flutuante constante de 0 a 1. Recomendamos usar um valor delevelno intervalo[0.01, 0.99]. Valor padrão: 0.5. Quandolevel=0.5, a função calcula a mediana.Float*
Argumentos
expr— Expressão sobre os valores da coluna que resulta em tipos de dados numéricos,Date,DateTimeouDateTime64.(U)Int*ouFloat*ouDecimal*ouDateouDateTimeouDateTime64
Valor retornado
Retorna o quantil do nível especificado. Para tipos de dados numéricos, o formato de saída corresponde ao formato de entrada. (U)Int* ou Float* ou Decimal* ou Date ou DateTime ou DateTime64
Exemplos
Cálculo exato do quantil alto
SELECT quantileExactHigh(number) FROM numbers(10);┌─quantileExactHigh(number)─┐
│ 5 │
└───────────────────────────┘Calculando um quantil em um nível específico
SELECT quantileExactHigh(0.1)(number) FROM numbers(10);┌─quantileExactHigh(0.1)(number)─┐
│ 1 │
└────────────────────────────────┘