quantiles
quantiles
숫자 데이터 수열에서 여러 수준의 근사 분위수를 동시에 계산하는 함수입니다. quantile 함수를 여러 번 호출하는 것보다 효율적이며, 단일 패스로 모든 분위수를 구합니다.
출처: 문서
본문
Quantiles 함수는 각기 다른 수준의 근사 분위수를 한 번에 계산합니다. 내부적으로 reservoir sampling(표본 크기 최대 8192)과 난수 생성기를 사용하므로 결과는 **비결정적(non-deterministic)**입니다.
여러 개의 quantile 함수를 나눠 호출하는 것보다 하나의 quantiles 호출이 데이터를 한 번만 통과하므로 더 효율적입니다.
도입 버전: v1.1.0
Syntax
quantiles(level1, level2, ...)(expr)
Parameters
level— 분위수 수준들.0부터1사이의 상수 부동소수점 값으로, 하나 이상 지정할 수 있습니다.[0.01, 0.99]범위 사용을 권장합니다.Float*
Arguments
expr— 값 열에 대한 표현식.(U)Int*,Int128/UInt128,Int256/UInt256,Float*,Decimal*,Date,DateTime,DateTime64타입의 결과를 반환합니다.
Returned value
- 지정한 수준들의 순서와 같은 배열 형태의 근사 분위수 값들. 숫자 인자는
Float64를,Decimal/Date/DateTime/DateTime64인자는 입력 형식을 유지합니다.Array(Float64)또는Array(Decimal*)또는Array(Date)또는Array(DateTime)또는Array(DateTime64)
Example
여러 분위수를 효율적으로 계산:
Query:
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1),(1),(2),(3),(4),(5),(6),(7),(8),(9);
SELECT quantiles(0.25, 0.5, 0.75, 0.9)(val) FROM t;
Response:
┌─quantiles(0.25, 0.5, 0.75, 0.9)(val)─┐
│ [2.5,5,7.5,9] │
└──────────────────────────────────────┘
더 알아보기 (Learn more)
- quantile — 단일 수준의 근사 분위수
- quantilesExact — 정확한 분위수를 여러 수준으로 계산
- quantilesTiming — 타이밍 데이터의 여러 분위수