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

quantileExactLow

quantileExactLow

도입 버전: v20.8

quantileExact와 유사하게, 숫자 데이터 시퀀스의 정확한 quantile을 계산합니다.

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

반환 값은 분위수 수준(quantile level)과 선택된 요소 개수에 따라 달라집니다. 예를 들어 수준이 0.5이면, 요소 개수가 짝수일 때는 하위 중앙값(lower median)을, 홀수일 때는 중앙값(middle median)을 반환합니다. 중앙값은 Python에서 사용되는 median_low 구현과 유사한 방식으로 계산됩니다.

다른 모든 수준의 경우, level * size_of_array 값에 해당하는 인덱스의 요소를 반환합니다.

쿼리에서 서로 다른 수준을 가진 여러 quantile* 함수를 사용할 때는 내부 상태가 결합되지 않습니다(즉, 쿼리가 가능한 것보다 비효율적으로 동작합니다). 이 경우 quantiles 함수를 사용하는 것이 좋습니다.

문법

quantileExactLow(level)(expr)

별칭: medianExactLow

매개변수

  • level — 선택 사항입니다. 분위수 수준입니다. 0에서 1 사이의 상수 부동 소수점 수입니다. level 값은 [0.01, 0.99] 범위에서 사용할 것을 권장합니다. 기본값: 0.5입니다. level=0.5인 경우 함수는 중앙값을 계산합니다. Float*

인자

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

반환 값

지정된 레벨의 분위수를 반환합니다. Float64 또는 Date 또는 DateTime

예시

정확한 낮은 분위수 계산

SELECT quantileExactLow(number) FROM numbers(10);
┌─quantileExactLow(number)─┐
│                        4 │
└──────────────────────────┘

특정 분위수 계산

SELECT quantileExactLow(0.1)(number) FROM numbers(10);
┌─quantileExactLow(0.1)(number)─┐
│                             1 │
└───────────────────────────────┘