quantileDeterministic
quantileDeterministic
숫자 데이터 수열의 근사 분위수를 계산하는 집계 함수예요. v1.1.0부터 도입되었어요.
출처: 문서
본문
숫자 데이터 수열의 근사 분위수를 계산해요. 이 함수는 최대 8192 크기의 reservoir sampling과 결정적인(deterministic) 샘플링 알고리즘을 적용해요. 결과는 결정적이에요. 정확한 분위수를 얻으려면 quantileExact 함수를 사용하세요. 쿼리에서 서로 다른 수준(level)의 여러 quantile* 함수를 사용하면 내부 상태가 결합되지 않아요(즉, 쿼리가 가능한 것보다 덜 효율적으로 동작해요). 이 경우에는 quantiles 함수를 사용하세요.
구문 (Syntax)
quantileDeterministic(level)(expr, determinator)
별칭(Aliases): medianDeterministic
파라미터 (Parameters)
level— 선택사항이에요. 분위수의 수준이에요. 0부터 1까지의 상수 부동소수점 수예요.[0.01, 0.99]범위의 수준 값을 사용하는 것을 권장해요. 기본값:0.5.level=0.5에서는 함수가 중앙값을 계산해요.Float*
인자 (Arguments)
expr— 숫자 데이터 타입,Date또는DateTime를 결과로 내는 컬럼 값에 대한 표현식이에요.(U)Int*또는Int128또는UInt128또는Int256또는UInt256또는Float*또는Date또는DateTimedeterminator— reservoir sampling 알고리즘에서 샘플링 결과를 결정적으로 만들기 위해 난수 생성기 대신 해시가 사용되는 숫자예요. 결정자(determinator)로는 사용자 ID나 이벤트 ID 같은 결정적인 양의 숫자를 사용할 수 있어요. 같은 결정자 값이 너무 자주 나타나면 함수가 잘못 동작해요.UInt*
반환 값 (Returned value)
지정된 수준의 근사 분위수를 반환해요. Float64 또는 Date 또는 DateTime
예시 (Examples)
결정적 분위수 계산:
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3);
SELECT quantileDeterministic(val, 1) FROM t;
결과:
┌─quantileDeterministic(val, 1)─┐
│ 1.5 │
└───────────────────────────────┘
참고 (See Also)
- median
- quantiles