quantileExactExclusive
도입 버전: v20.1.0
quantileExact와 유사하게, 이 함수는 숫자 데이터 시퀀스의 정확한 분위수를 계산합니다.
이 함수는 quantileExact와 동일하지만, R-6 method에 설명된 대로 분위수를 계산할 때 exclusive 방법을 사용합니다.
이 함수를 사용하면, 주어진 분위수 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 사이(양 끝값 제외)의 상수 부동소수점 수입니다.level값은(0.01, 0.99)범위에서 사용하는 것을 권장합니다.Float*
인수
expr— 컬럼 값에 대한 표현식이며, 결과는 숫자 데이터 타입,Date또는DateTime이어야 합니다.(U)Int*또는Float*또는Date또는DateTime
반환 값
지정한 수준의 분위수를 반환합니다. Float64
예시
정확한 exclusive 분위수 계산
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.10000000000000009 │ 8.9 │
└─────────────────────────────────────┴─────────────────────────────────────┘