본문으로 바로가기
본문으로 바로가기

uniq

uniq

도입된 버전: v1.1

인수의 서로 다른 값 개수를 근사적으로 계산합니다.

이 함수는 적응형 샘플링(adaptive sampling) 알고리즘을 사용합니다. 계산 상태를 위해 최대 65,536개의 요소 해시 값 샘플을 사용합니다. 이 알고리즘은 매우 정확하며 CPU에서 매우 효율적으로 동작합니다. 쿼리에 이러한 함수가 여러 개 포함되어 있어도 uniq를 사용하는 것은 다른 집계 함수를 사용하는 것과 거의 비슷한 속도로 동작합니다.

구현 세부 정보

이 함수는 집계에 포함된 모든 인수에 대해 해시를 계산한 다음, 이를 계산에 사용합니다. 적응형 샘플링(adaptive sampling) 알고리즘을 사용합니다. 계산 상태를 위해 최대 65,536개의 요소 해시 값 샘플을 사용합니다. 이 알고리즘은 매우 정확하며 CPU에서 매우 효율적으로 동작합니다. 쿼리에 이러한 함수가 여러 개 포함되어 있어도 uniq를 사용하는 것은 다른 집계 함수를 사용하는 것과 거의 비슷한 속도로 동작합니다.

거의 모든 시나리오에서 이 함수를 다른 변형보다 우선적으로 사용할 것을 권장합니다.

구문

uniq(x[, ...])

인수(Arguments)

반환 값(Returned value)

서로 다른 값의 대략적인 개수를 나타내는 UInt64 타입 숫자를 반환합니다. UInt64

예시(Examples)

사용 예시(Example usage)

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 │
└─────────────────────┘

참고 항목