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

quantileExactExclusive

quantileExactExclusive

도입된 버전: v20.1

quantileExact와 유사하게, 숫자 데이터 시퀀스의 정확한 quantile을 계산합니다.

이 함수는 quantileExact와 기능적으로 동일하지만, R-6 method에 설명된 것처럼 quantile을 계산할 때 배타적(exclusive) 방법을 사용합니다.

이 함수를 사용할 때 quantile은, 주어진 quantile p에 대한 보간 공식이 다음 형태가 되도록 계산됩니다: x[floor(n*p)] + (n*p - floor(n*p)) * (x[floor(n*p)+1] - x[floor(n*p)]). 여기서 x는 정렬된 배열입니다.

정확한 값을 얻기 위해 전달된 모든 값을 하나의 배열로 결합한 뒤, 전체 정렬을 수행합니다. 정렬 알고리즘의 복잡도는 O(N·log(N))이며, 여기서 N = std::distance(first, last) 번의 비교가 수행됩니다.

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

구문

quantileExactExclusive(level)(expr)

매개변수

  • level — 분위수 레벨입니다. 0 이상 1 미만인 상수 부동 소수점 수입니다. (0.01, 0.99) 범위의 level 값을 사용할 것을 권장합니다. Float*

인수

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

반환 값

지정한 레벨의 분위수를 반환합니다. Float64

예시

정확한 배타적 분위수 계산

SELECT quantileExactExclusive(0.25)(number) FROM numbers(5);
┌─quantileExactExclusive(0.25)(number)─┐
│                                  0.5 │
└──────────────────────────────────────┘

여러 분위수 수준 계산하기

SELECT quantileExactExclusive(0.1)(number), quantileExactExclusive(0.9)(number) FROM numbers(10);
┌─quantileExactExclusive(0.1)(number)─┬─quantileExactExclusive(0.9)(number)─┐
│                                 0.4 │                                 8.6 │
└─────────────────────────────────────┴─────────────────────────────────────┘