quantileExactInclusive

quantileExactInclusive

숫자 데이터 수열의 분위수를 정확히 계산하는 집계 함수예요. quantileExact와 비슷하지만 분위수 계산에 R-7 방법에 설명된 포괄적(inclusive) 방식을 사용해요. v20.1.0부터 도입되었어요.

출처: 문서

본문

quantileExact와 비슷하게, 이 함수는 숫자 데이터 수열의 분위수를 정확히 계산해요. quantileExact와 동일하지만 R-7 방법에 설명된 것처럼 분위수 계산에 포괄적(inclusive) 방식을 사용해요. 이 함수를 사용하면 주어진 분위수 p에 대한 보간 공식이 x[floor((n-1)*p)] + ((n-1)*p - floor((n-1)*p)) * (x[floor((n-1)*p)+1] - x[floor((n-1)*p)]) 형태를 띠도록 분위수가 계산돼요. 여기서 x는 정렬된 배열이에요.

정확한 값을 얻기 위해 전달된 모든 값이 하나의 배열로 결합된 뒤 완전히 정렬돼요. 정렬 알고리즘의 복잡도는 O(N·log(N))이며, 여기서 N = std::distance(first, last) 비교 횟수예요. 쿼리에서 서로 다른 수준(level)의 여러 quantile* 함수를 사용하면 내부 상태가 결합되지 않아요(즉, 쿼리가 가능한 것보다 덜 효율적으로 동작해요). 이 경우에는 quantiles 함수를 사용하세요.

구문 (Syntax)

quantileExactInclusive(level)(expr)

파라미터 (Parameters)

  • level — 분위수의 수준이에요. 0부터 1까지(포괄적)의 상수 부동소수점 수예요. [0.01, 0.99] 범위의 수준 값을 사용하는 것을 권장해요. Float*

인자 (Arguments)

  • expr — 숫자 데이터 타입, Date 또는 DateTime를 결과로 내는 컬럼 값에 대한 표현식이에요. (U)Int* 또는 Float* 또는 Date 또는 DateTime

반환 값 (Returned value)

지정된 수준의 분위수를 반환해요. Float64

예시 (Examples)

정확한 포괄적 분위수 계산:

SELECT quantileExactInclusive(0.25)(number) FROM numbers(5);

결과:

┌─quantileExactInclusive(0.25)(number)─┐
│                                    1 │
└──────────────────────────────────────┘

여러 분위수 수준 계산:

SELECT quantileExactInclusive(0.1)(number), quantileExactInclusive(0.9)(number) FROM numbers(10);

결과:

┌─quantileExactInclusive(0.1)(number)─┬─quantileExactInclusive(0.9)(number)─┐
│                  0.8999999999999999 │                                 8.1 │
└─────────────────────────────────────┴─────────────────────────────────────┘

더 알아보기 (Learn more)