Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesExactInclusive

quantilesExactInclusive

도입 버전: v20.1.0

포괄 방식을 사용해 숫자 데이터 시퀀스의 여러 분위수를 서로 다른 수준에서 동시에 정확하게 계산합니다.

이 함수는 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* 또는 Date 또는 DateTime

반환 값

지정한 수준의 분위수를, 수준을 지정한 순서와 동일한 순서로 담은 배열입니다. Array(Float64)

예시

여러 개의 정확한 포함 분위수 계산

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]                        │
└──────────────────────────────────────────────────────────────────────────┘
Navigation