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

quantileExactWeightedInterpolated

quantileExactWeightedInterpolated

도입 버전: v24.10

각 요소의 가중치를 고려하여 선형 보간법을 사용해 숫자 데이터 시퀀스의 quantile을 계산합니다.

보간값을 구하기 위해, 전달된 모든 값을 하나의 배열로 합친 뒤 각 값에 대응하는 가중치를 기준으로 정렬합니다. 그 다음 가중치를 기반으로 누적 분포를 구성하고, 가중치와 값을 사용해 선형 보간을 수행하여 분위수를 계산하는 가중 분위수 방법(weighted percentile method)을 사용합니다.

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

quantileInterpolatedWeighted 대신 quantileExactWeightedInterpolated 사용을 강력히 권장합니다. quantileExactWeightedInterpolatedquantileInterpolatedWeighted보다 더 정확하기 때문입니다. 자세한 내용은 아래 예제를 참조하십시오.

구문

quantileExactWeightedInterpolated(level)(expr, weight)

별칭: medianExactWeightedInterpolated

매개변수

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

인수

  • expr — 컬럼 값에 대한 표현식으로, 결과가 숫자형 데이터 타입, Date 또는 DateTime이어야 합니다. (U)Int* 또는 Float* 또는 Decimal* 또는 Date 또는 DateTime
  • weight — 시퀀스 구성원의 가중치를 담은 컬럼입니다. 가중치는 해당 값이 출현하는 횟수를 의미합니다. UInt*

반환 값

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

예시

정확한 가중 보간 분위수 계산

SELECT quantileExactWeightedInterpolated(n, val) FROM t;
┌─quantileExactWeightedInterpolated(n, val)─┐
│                                       1.5 │
└───────────────────────────────────────────┘

quantileInterpolatedWeighted보다 quantileExactWeightedInterpolated 사용을 권장합니다

SELECT
    quantileExactWeightedInterpolated(0.99)(number, 1),
    quantile(0.99)(number),
    quantileInterpolatedWeighted(0.99)(number, 1)
FROM numbers(9)
┌─quantileExactWeightedInterpolated(0.99)(number, 1)─┬─quantile(0.99)(number)─┬─quantileInterpolatedWeighted(0.99)(number, 1)─┐
│                                               7.92 │                   7.92 │                                             8 │
└────────────────────────────────────────────────────┴────────────────────────┴───────────────────────────────────────────────┘

참고 항목