uniq
도입 버전: v1.1.0
인수의 서로 다른 값의 대략적인 개수를 계산합니다.
이 함수는 적응형 샘플링 알고리즘을 사용합니다. 계산 상태에는 최대 65536개의 요소 해시 값 샘플을 사용합니다. 이 알고리즘은 정확도가 매우 높고 CPU 효율도 매우 뛰어납니다. 쿼리에 이러한 함수가 여러 개 포함된 경우 uniq를 사용하는 속도는 다른 집계 함수를 사용하는 것과 거의 비슷합니다.
구현 세부 정보
이 함수는 집계의 모든 매개변수에 대해 해시를 계산한 다음, 이를 계산에 사용합니다.
적응형 샘플링 알고리즘을 사용합니다.
계산 상태에는 최대 65536개의 요소 해시 값 샘플을 사용합니다.
이 알고리즘은 정확도가 매우 높고 CPU 효율도 매우 뛰어납니다.
쿼리에 이러한 함수가 여러 개 포함된 경우 uniq를 사용하는 속도는 다른 집계 함수를 사용하는 것과 거의 비슷합니다.
구문
uniq(x[, ...])인수
x— 이 함수는 개수가 가변적인 인수를 받습니다.Tuple(T)또는Array(T)또는Date또는DateTime또는String또는(U)Int*또는Float*또는Decimal
반환 값
서로 다른 값의 대략적인 개수를 나타내는 UInt64 타입의 숫자를 반환합니다. UInt64
예시
사용 예시
CREATE TABLE example_table (
id UInt32,
category String,
value Float64
) ENGINE = Memory;
INSERT INTO example_table VALUES
(1, 'A', 10.5),
(2, 'B', 20.3),
(3, 'A', 15.7),
(4, 'C', 8.9),
(5, 'B', 12.1),
(6, 'A', 18.4);
SELECT uniq(category) as unique_categories
FROM example_table;┌─unique_categories─┐
│ 3 │
└───────────────────┘여러 개의 인수
SELECT uniq(category, value) as unique_combinations
FROM example_table;┌─unique_combinations─┐
│ 6 │
└─────────────────────┘관련 항목