quantileGK

quantileGK

숫자 데이터 수열에서 Greenwald–Khanna(GK) 알고리즘을 사용해 근사 분위수를 계산하는 함수입니다. 메모리 사용량을 compression 매개변수로 조절할 수 있어 저장 공간과 정확도(속도) 사이의 균형을 직접 정할 수 있습니다.

출처: 문서

본문

QuantileGK 함수는 level이 지정한 분위수 레벨에서 숫자 데이터 수열의 근사 분위수를 계산합니다. Greenwald–Khanna 알고리즘은 고정된 메모리 예산 안에서 분위수를 근사하며, compression 값이 클수록 더 정확한(더 많은 메모리를 쓰는) 결과를 얻고 작을수록 메모리를 절약합니다.

이 함수는 quantile, quantileExact, quantileTiming 등과 같은 다른 분위수 함수의 대안으로 사용할 수 있습니다.

도입 버전: v21.9.10

Syntax

quantileGK(level, compression)(expr)

Parameters

  • level — 분위수 수준. 0부터 1 사이의 상수 값입니다. 낮을수록 낮은 분위수를, 높을수록 높은 분위수를 반환합니다.
  • compression — 메모리 사용량과 정확도를 조절하는 상수 값입니다. 값이 작을수록 메모리를 적게 쓰고 계산이 빨라지며, 클수록 메모리를 더 쓰고 정확도가 높아집니다.

Arguments

  • expr — 값 열에 대한 표현식. (U)Int*, Float*, Decimal* 등 숫자 타입의 결과를 반환해야 합니다.

Returned value

  • 주어진 level의 근사 분위수 값. Float64

Example

SELECT quantileGK(0.99, 1000)(number) FROM numbers(10000);

더 알아보기 (Learn more)

  • quantilesGK — 여러 수준의 근사 분위수를 한 번에 계산
  • quantile — reservoir sampling 기반 근사 분위수
  • quantileTDigest — t-digest 기반 근사 분위수