본문으로 바로가기
본문으로 바로가기

quantileTDigest

quantileTDigest

도입 버전: v1.1

t-digest 알고리즘을 사용하여 숫자 데이터 시퀀스의 분위수(quantile)를 근사적으로 계산합니다.

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

이 함수의 성능은 quantile 또는 quantileTiming의 성능보다 낮습니다. 상태(state) 크기와 정밀도의 비율 관점에서는 이 함수가 quantile보다 훨씬 우수합니다.

쿼리에서 서로 다른 수준을 가진 여러 quantile* 함수를 사용하는 경우 내부 상태(state)는 결합되지 않습니다(즉, 쿼리가 가능한 것보다 비효율적으로 동작합니다). 이러한 경우 quantiles 함수를 사용하십시오.

문법

quantileTDigest(level)(expr)

별칭: medianTDigest

매개변수

  • level — 선택 사항입니다. 분위수(quantile)의 수준입니다. 0에서 1 사이의 상수 부동 소수점 수입니다. level 값은 [0.01, 0.99] 범위에서 사용하기를 권장합니다. 기본값: 0.5입니다. level=0.5일 때 함수는 중앙값을 계산합니다. Float*

인자

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

반환 값

지정된 수준의 근사 분위수입니다. Float64 또는 Date 또는 DateTime

예시

t-digest를 사용한 분위수 계산

SELECT quantileTDigest(number) FROM numbers(10);
┌─quantileTDigest(number)─┐
│                     4.5 │
└─────────────────────────┘

참고