quantileExact
도입 버전: v1.1.0
숫자 데이터 시퀀스의 분위수를 정확하게 계산합니다.
정확한 값을 얻기 위해 전달된 모든 값을 배열로 모은 다음 부분 정렬을 수행합니다.
따라서 이 함수는 전달된 값의 개수를 n이라고 할 때 O(n) 메모리를 사용합니다.
하지만 값의 개수가 적을 때는 매우 효율적입니다.
하나의 쿼리에서 수준이 서로 다른 여러 quantile* 함수를 사용하면 내부 상태가 결합되지 않습니다(즉, 쿼리가 원래보다 비효율적으로 동작합니다).
이 경우 quantiles 함수를 사용하십시오.
구문
quantileExact(level)(expr)별칭: medianExact
매개변수
level— 선택 사항입니다. 분위수 수준입니다. 0에서 1 사이의 상수 부동소수점 값입니다.level값은[0.01, 0.99]범위에서 사용하는 것을 권장합니다. 기본값은 0.5입니다.level=0.5이면 함수는 중앙값을 계산합니다.Float*
인수
expr— 컬럼 값을 대상으로 하는 표현식으로, 결과는 숫자 데이터 타입,Date,DateTime또는DateTime64이어야 합니다.(U)Int*또는Int128또는UInt128또는Int256또는UInt256또는Float*또는Decimal*또는Date또는DateTime또는DateTime64
반환 값
지정한 수준의 분위수입니다. 숫자 데이터 타입의 경우 출력 형식은 입력 형식과 동일합니다. (U)Int* 또는 Int128 또는 UInt128 또는 Int256 또는 UInt256 또는 Float* 또는 Decimal* 또는 Date 또는 DateTime 또는 DateTime64
예시
정확한 분위수 계산
SELECT quantileExact(number) FROM numbers(10);┌─quantileExact(number)─┐
│ 5 │
└───────────────────────┘관련 항목