Pular para o conteúdo principal

quantilesGK

Introduzido em: v23.4.0 Calcula múltiplos quantis de uma sequência de dados numéricos em diferentes níveis simultaneamente usando o algoritmo Greenwald-Khanna. Esta função funciona de forma semelhante a quantileGK, 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. O algoritmo Greenwald-Khanna é usado para calcular quantis em um fluxo de dados de forma altamente eficiente. Ele foi introduzido por Michael Greenwald e Sanjeev Khanna em 2001. O algoritmo é altamente eficiente, usando apenas espaço O(log n) e tempo O(log log n) por item (em que n é o tamanho da entrada). Ele também é altamente preciso, fornecendo valores de quantil aproximados com precisão ajustável. Sintaxe
quantilesGK(accuracy, level1, level2, ...)(expr)
Parâmetros
  • accuracy — Precisão dos quantis. Inteiro positivo constante. Quanto maior o valor de precisão, menor o erro. Por exemplo, se o argumento accuracy for definido como 100, os quantis calculados terão erro não superior a 1% com alta probabilidade. Há um equilíbrio entre a precisão dos quantis calculados e a complexidade computacional do algoritmo. UInt*
  • level — Níveis dos quantis. Um ou mais números de ponto flutuante constantes entre 0 e 1. Float*
Argumentos Valor retornado Array de quantis dos níveis especificados, na mesma ordem em que os níveis foram especificados. Array(Float64) ou Array(Date) ou Array(DateTime) Exemplos Cálculo de múltiplos quantis com o algoritmo GK
Query
SELECT quantilesGK(1, 0.25, 0.5, 0.75)(number + 1) FROM numbers(1000);
Response
┌─quantilesGK(1, 0.25, 0.5, 0.75)(plus(number, 1))─┐
│ [1, 1, 1]                                        │
└──────────────────────────────────────────────────┘
Quantis mais precisos
Query
SELECT quantilesGK(100, 0.25, 0.5, 0.75)(number + 1) FROM numbers(1000);
Response
┌─quantilesGK(100, 0.25, 0.5, 0.75)(plus(number, 1))─┐
│ [251, 498, 741]                                    │
└────────────────────────────────────────────────────┘
Última modificação em 10 de junho de 2026