Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantiles 함수

quantiles

도입 버전: v1.1.0

숫자 데이터 시퀀스에 대해 서로 다른 수준의 근사 분위수를 여러 개 동시에 계산합니다.

이 함수는 저장소 크기가 최대 8192인 reservoir sampling과 샘플링을 위한 난수 생성기를 사용합니다. 결과는 비결정적입니다.

여러 개의 분위수 값이 필요할 때 quantiles를 사용하면 개별 quantile 함수를 여러 번 호출하는 것보다 효율적입니다. 모든 분위수를 데이터를 한 번만 순회하며 계산하기 때문입니다.

구문

quantiles(level1, level2, ...)(expr)

매개변수

  • level — 분위수 수준입니다. 0에서 1 사이의 상수 부동소수점 숫자 1개 이상입니다. level 값은 [0.01, 0.99] 범위에서 사용하는 것을 권장합니다. Float*

인수

반환 값

지정된 수준의 근사 분위수를, 수준을 지정한 순서와 동일한 순서로 담은 배열입니다. 숫자 인수는 Float64를 반환하며, Decimal, Date, DateTime, DateTime64 인수는 입력 형식을 유지합니다. Array(Float64) 또는 Array(Decimal*) 또는 Array(Date) 또는 Array(DateTime) 또는 Array(DateTime64)

예시

여러 분위수를 효율적으로 계산하기

CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);

SELECT quantiles(0.25, 0.5, 0.75, 0.9)(val) FROM t;
┌─quantiles(0.25, 0.5, 0.75, 0.9)(val)─┐
│ [2.5,5,7.5,9]                        │
└──────────────────────────────────────┘
Navigation