Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesTDigest

quantilesTDigest

도입 버전: v1.1.0

t-digest 알고리즘을 사용해 서로 다른 수준에서 숫자 데이터 시퀀스의 여러 근사 분위수를 동시에 계산합니다.

이 함수는 quantileTDigest와 동일하지만, 여러 분위수 수준을 단일 패스로 계산할 수 있으므로 개별 분위수 함수를 각각 호출하는 것보다 더 효율적입니다.

메모리 사용량은 log(n)이며, 여기서 n은 값의 개수입니다. 결과는 쿼리 실행 순서에 따라 달라지므로 비결정적입니다.

이 함수의 성능은 quantiles 또는 quantilesTiming보다 낮습니다. State 크기 대비 정밀도 비율 측면에서는 이 함수가 quantiles보다 훨씬 우수합니다.

구문

quantilesTDigest(level1, level2, ...)(expr)

매개변수

  • level — 분위수 수준입니다. 0부터 1까지의 상수 부동소수점 수를 하나 이상 지정합니다. level 값은 [0.01, 0.99] 범위에서 사용하는 것을 권장합니다. Float*

인수

  • expr — 컬럼 값에 대한 표현식으로, 결과는 숫자 데이터 타입, Date 또는 DateTime이어야 합니다. (U)Int* 또는 Float* 또는 Date 또는 DateTime

반환 값

지정한 수준의 근사 분위수를, 지정한 수준의 순서와 동일한 순서로 담은 배열입니다. DateDateTime 입력의 경우 출력 형식은 입력 형식과 일치합니다. Array(Float32) 또는 Array(Date) 또는 Array(DateTime)

예시

t-digest를 사용하여 여러 분위수 계산

SELECT quantilesTDigest(0.25, 0.5, 0.75)(number) FROM numbers(100);
┌─quantilesTDigest(0.25, 0.5, 0.75)(number)─┐
│ [24,49,74]                                │
└───────────────────────────────────────────┘
Navigation