quantilesExactExclusive
도입 버전: v20.1.0
exclusive 방식을 사용하여 숫자 데이터 시퀀스의 여러 분위수를 서로 다른 수준에서 동시에 정확하게 계산합니다.
이 함수는 quantileExactExclusive와 동일하지만, 여러 분위수 수준을 한 번에 계산할 수 있어 개별 분위수 함수를 각각 호출하는 것보다 더 효율적입니다.
이 함수는 R-6 method에 설명된 대로 분위수를 계산할 때 exclusive 방식을 사용합니다. 이는 Excel의 PERCENTILE.EXC 함수와 동일합니다.
정확한 값을 얻기 위해 전달된 모든 값을 하나의 배열로 결합한 다음 부분 정렬합니다.
정렬 알고리즘의 복잡도는 O(N·log(N))번의 비교이며, 여기서 N = std::distance(first, last)입니다.
구문
quantilesExactExclusive(level1, level2, ...)(expr)매개변수
level— 분위수 수준입니다. 0과 1 사이의 상수 부동소수점 수이며, 양 끝값은 제외됩니다.level값은(0.01, 0.99)범위에서 사용하는 것을 권장합니다.Float*
인수
expr— 컬럼 값에 대한 표현식으로, 결과는 숫자 데이터 타입,Date또는DateTime이어야 합니다.(U)Int*또는Float*또는Date또는DateTime
반환 값
지정한 수준의 분위수를, 지정한 수준과 동일한 순서로 담은 배열입니다. Array(Float64)
예시
여러 개의 정확한 exclusive 분위수 계산
CREATE TABLE num AS numbers(1000);
SELECT quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number) FROM num;┌─quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number)─┐
│ [249.25,499.5,749.75,899.9,949.9499999999999,989.99,998.999] │
└──────────────────────────────────────────────────────────────────────────┘