Pular para o conteúdo principal

quantileExactWeightedInterpolated

Introduzido em: v24.10.0 Calcula o quantil de uma sequência de dados numéricos usando interpolação linear, levando em consideração o peso de cada elemento. Para obter o valor interpolado, todos os valores fornecidos são combinados em um array, que depois é ordenado de acordo com os respectivos pesos. A interpolação de quantis é então realizada usando o método do percentil ponderado, construindo uma distribuição cumulativa com base nos pesos e, em seguida, aplicando interpolação linear com os pesos e os valores para calcular os quantis. 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. Recomendamos fortemente usar quantileExactWeightedInterpolated em vez de quantileInterpolatedWeighted, porque quantileExactWeightedInterpolated é mais precisa que quantileInterpolatedWeighted. Veja o exemplo abaixo para mais detalhes. Sintaxe
quantileExactWeightedInterpolated(level)(expr, weight)
Aliases: medianExactWeightedInterpolated Parâmetros
  • level — Opcional. Nível do quantil. Número de ponto flutuante constante de 0 a 1. Recomendamos usar um valor de level no intervalo [0.01, 0.99]. Valor padrão: 0.5. Em level=0.5, a função calcula a mediana. Float*
Argumentos
  • expr — Expressão aplicada aos valores da coluna, resultando em tipos de dados numéricos, Date ou DateTime. (U)Int* ou Float* ou Decimal* ou Date ou DateTime
  • weight — Coluna com os pesos dos membros da sequência. O peso é o número de ocorrências do valor. UInt*
Valor retornado Quantil do nível especificado. Float64 ou Date ou DateTime Exemplos Cálculo do quantil interpolado ponderado exato
Query
SELECT quantileExactWeightedInterpolated(n, val) FROM t;
Response
┌─quantileExactWeightedInterpolated(n, val)─┐
│                                       1.5 │
└───────────────────────────────────────────┘
Prefira quantileExactWeightedInterpolated em vez de quantileInterpolatedWeighted
Query
SELECT
    quantileExactWeightedInterpolated(0.99)(number, 1),
    quantile(0.99)(number),
    quantileInterpolatedWeighted(0.99)(number, 1)
FROM numbers(9)
Response
┌─quantileExactWeightedInterpolated(0.99)(number, 1)─┬─quantile(0.99)(number)─┬─quantileInterpolatedWeighted(0.99)(number, 1)─┐
│                                               7.92 │                   7.92 │                                             8 │
└────────────────────────────────────────────────────┴────────────────────────┴───────────────────────────────────────────────┘
Veja também
Última modificação em 10 de junho de 2026