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

quantilesExactInclusive

quantilesExactInclusive

도입 버전: v20.1

포함 방식(inclusive method)을 사용하여 수치 데이터 시퀀스의 여러 분위수를 서로 다른 레벨에서 동시에 정확하게 계산합니다.

이 함수는 quantileExactInclusive와 동일하지만 한 번의 처리로 여러 분위수 레벨을 계산할 수 있어, 개별 분위수 함수를 각각 호출하는 것보다 더 효율적입니다.

이 함수는 R-7 method에 설명된 것처럼 분위수를 계산하기 위해 포함 방식을 사용합니다. 이는 Excel 함수 PERCENTILE.INC와 동일합니다.

정확한 값을 얻기 위해 전달된 모든 값을 하나의 배열로 결합한 후 부분 정렬합니다. 정렬 알고리즘의 복잡도는 O(N·log(N))이며, 여기서 N = std::distance(first, last)일 때의 비교 연산 횟수를 나타냅니다.

구문

quantilesExactInclusive(level1, level2, ...)(expr)

매개변수

  • level — 분위수의 레벨입니다. 0에서 1(포함) 사이의 상수 부동 소수점 값입니다. level 값은 [0.01, 0.99] 범위에서 사용할 것을 권장합니다. Float*

인자

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

반환 값

지정된 레벨과 동일한 순서로 반환되는 분위수의 배열입니다. Array(Float64)

예시

여러 개의 정확한 inclusive 분위수 계산하기

CREATE TABLE num AS numbers(1000);
SELECT quantilesExactInclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number) FROM num;
┌─quantilesExactInclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number)─┐
│ [249.75,499.5,749.25,899.1,949.05,989.01,998.001]                        │
└──────────────────────────────────────────────────────────────────────────┘