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

quantileTDigestWeighted

quantileTDigestWeighted

도입 버전: v20.1

t-digest 알고리즘을 사용하여 숫자 데이터 시퀀스의 근사 분위수(quantile)를 계산합니다. 함수는 시퀀스 각 원소의 가중치를 고려합니다.

최대 오차는 1%입니다. 메모리 사용량은 log(n)이며, 여기서 n은 값의 개수입니다.

이 함수의 성능은 quantile 또는 quantileTiming의 성능보다 낮습니다. State 크기와 정밀도의 비율 측면에서는 이 함수가 quantile보다 훨씬 뛰어납니다.

결과는 쿼리 실행 순서에 따라 달라지며, 비결정적입니다.

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

참고

quantileTDigestWeighted매우 작은 데이터 세트에는 사용하는 것을 권장하지 않으며, 상당한 오차를 초래할 수 있습니다. 이러한 경우에는 대신 quantileTDigest를 사용하는 방안을 고려하십시오.

구문

quantileTDigestWeighted(level)(expr, weight)

별칭: medianTDigestWeighted

매개변수

  • level — 선택 사항입니다. 분위수의 레벨입니다. 0에서 1 사이의 상수 부동 소수점 숫자입니다. [0.01, 0.99] 범위의 level 값을 사용할 것을 권장합니다. 기본값: 0.5. level=0.5에서는 함수가 중앙값을 계산합니다. Float*

인수

  • expr — 컬럼 값에 대한 표현식으로, 숫자 데이터 타입 또는 Date, DateTime 결과를 반환합니다. (U)Int* 또는 Float* 또는 Decimal* 또는 Date 또는 DateTime
  • weight — 시퀀스 요소의 가중치를 담은 컬럼입니다. 가중치는 값이 나타나는 횟수입니다. UInt*

반환 값

지정된 레벨에 대한 근사 분위수입니다. Float64 또는 Date 또는 DateTime

예시

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

SELECT quantileTDigestWeighted(number, 1) FROM numbers(10);
┌─quantileTDigestWeighted(number, 1)─┐
│                                4.5 │
└────────────────────────────────────┘

함께 보기