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

quantileExact 함수

quantileExact

도입된 버전: v1.1

숫자 데이터 시퀀스의 quantile을 정확히 계산합니다.

정확한 값을 얻기 위해, 전달된 모든 값을 하나의 배열로 합친 뒤 부분적으로 정렬합니다. 따라서 이 함수는 n이 전달된 값의 개수일 때 O(n) 메모리를 사용합니다. 하지만 값의 개수가 적을 때는 함수가 매우 효율적으로 동작합니다.

쿼리에서 서로 다른 수준(level)을 사용하는 여러 quantile* 함수를 함께 사용할 경우, 내부 상태가 결합되지 않습니다(즉, 잠재적인 최대 성능보다 비효율적으로 동작합니다). 이러한 경우에는 quantiles 함수를 사용하십시오.

문법

quantileExact(level)(expr)

별칭: medianExact

매개변수

  • level — 선택적 매개변수입니다. 분위수 수준입니다. 0에서 1 사이의 상수 부동 소수점 숫자입니다. level 값으로 [0.01, 0.99] 범위를 사용할 것을 권장합니다. 기본값: 0.5입니다. level=0.5이면 함수는 중앙값을 계산합니다. Float*

인수

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

반환 값

지정된 수준의 분위수입니다. 숫자 데이터 타입의 경우 출력 형식은 입력 형식과 동일합니다. (U)Int* 또는 Float* 또는 Decimal* 또는 Date 또는 DateTime

예시

정확한 분위수 계산

SELECT quantileExact(number) FROM numbers(10);
┌─quantileExact(number)─┐
│                     5 │
└───────────────────────┘

함께 보기