quantileTDigest
quantileTDigest
t-digest 알고리즘을 사용해 숫자 데이터 수열의 근사 분위수를 계산하는 함수입니다. quantile(reservoir sampling) 함수보다 메모리를 덜 사용하면서도 근사 분위수를 제공합니다.
출처: 문서
본문
QuantileTDigest 함수는 t-digest 자료구조를 이용해 숫자 데이터 수열의 분위수를 근사합니다. t-digest는 데이터를 클러스터로 묶어 저장하므로 메모리 사용이 효율적이며, 분위수를 빠르게 계산할 수 있습니다.
입력 데이터의 타입에 따라 결과가 달라집니다. 숫자형 입력이면 Float32를 반환하고, Date, DateTime, DateTime64 입력이면 각각 해당 타입을 유지합니다. 참고로 quantileTDigest의 결과는 입력 데이터의 개수가 작을수록 quantile의 결과와 비슷하며, 데이터가 많아질수록 근사 오차가 생길 수 있습니다.
Syntax
quantileTDigest(level)(expr)
Parameters
level— 분위수 수준.0부터1사이의 상수 값이며,[0.01, 0.99]범위 사용을 권장합니다.
Arguments
expr— 값 열에 대한 표현식.(U)Int*,Float*,Decimal*,Date,DateTime,DateTime64타입의 결과를 반환합니다.
Returned value
- 주어진
level의 근사 분위수. 입력이 숫자형이면Float32, 입력이Date/DateTime/DateTime64면 해당 타입으로 반환됩니다.
Example
SELECT quantileTDigest(0.5)(number) FROM numbers(1000);
더 알아보기 (Learn more)
- quantileTDigestWeighted — 가중치를 적용한 t-digest 분위수
- quantilesTDigest — 여러 수준의 t-digest 근사 분위수
- quantile — reservoir sampling 기반 근사 분위수