메인 콘텐츠로 건너뛰기

quantileGK

도입 버전: v23.4.0 Greenwald-Khanna 알고리즘을 사용해 숫자 데이터 시퀀스의 분위수를 계산합니다. Greenwald-Khanna 알고리즘은 데이터 스트림의 분위수를 매우 효율적으로 계산하는 데 사용되는 알고리즘입니다. 이 알고리즘은 2001년에 Michael Greenwald와 Sanjeev Khanna가 처음 소개했습니다. 대규모 데이터 스트림에서 정확한 분위수를 실시간으로 계산해야 하는 데이터베이스 및 빅데이터 시스템에서 널리 사용됩니다. 이 알고리즘은 매우 효율적이며, 각 항목마다 O(log n)의 공간과 O(log log n)의 시간만 사용합니다(n은 입력 크기). 또한 정확도도 높아, 높은 확률로 근사 분위수 값을 제공합니다. quantileGK는 사용자가 근사 분위수 결과의 정확도를 제어할 수 있다는 점에서 ClickHouse의 다른 분위수 함수와 다릅니다. 구문
quantileGK(accuracy, level)(expr)
별칭: medianGK 매개변수
  • accuracy — 분위수의 정확도입니다. 상수 양의 정수입니다. 정확도 값이 클수록 오류는 줄어듭니다. 예를 들어 accuracy 인수를 100으로 설정하면 계산된 분위수의 오류는 높은 확률로 1%를 넘지 않습니다. 계산된 분위수의 정확도와 알고리즘의 계산 복잡도 사이에는 상충 관계가 있습니다. 정확도 값이 클수록 분위수를 정확하게 계산하기 위해 더 많은 메모리와 컴퓨트 리소스가 필요합니다. 반면 accuracy 인수 값이 작을수록 정확도는 다소 낮아지지만, 더 빠르고 메모리 효율적으로 계산할 수 있습니다. UInt*
  • level — 선택 사항입니다. 분위수 수준입니다. 0부터 1까지의 상수 부동소수점 수입니다. 기본값은 0.5입니다. level=0.5이면 함수는 중앙값을 계산합니다. Float*
인수
  • expr — 컬럼 값에 대한 표현식으로, 결과는 숫자 데이터 타입, Date 또는 DateTime이어야 합니다. (U)Int* 또는 Float* 또는 Decimal* 또는 Date 또는 DateTime
반환 값 지정한 수준과 정확도의 분위수를 반환합니다. Float64 또는 Date 또는 DateTime 예시 정확도 수준별 분위수 계산
Query
SELECT quantileGK(1, 0.25)(number + 1) FROM numbers(1000);
Response
┌─quantileGK(1, 0.25)(plus(number, 1))─┐
│                                    1 │
└──────────────────────────────────────┘
고정밀 분위수
Query
SELECT quantileGK(100, 0.25)(number + 1) FROM numbers(1000);
Response
┌─quantileGK(100, 0.25)(plus(number, 1))─┐
│                                    251 │
└────────────────────────────────────────┘
관련 항목
마지막 수정일 2026년 6월 10일