메인 콘텐츠로 건너뛰기

설명

Array 조합자는 uniq 함수에 적용할 수 있으며, uniqArray 집계 조합자 함수를 사용해 모든 배열에 걸친 고유 요소의 대략적인 개수를 계산합니다. uniqArray 함수는 데이터셋의 여러 배열에 걸쳐 고유 요소 수를 계산해야 할 때 유용합니다. 이는 uniq(arrayJoin())를 사용하는 것과 동일하며, 이때 arrayJoin은 먼저 배열을 펼친 다음 uniq가 고유 요소를 계산합니다.

사용 예시

이 예시에서는 여러 카테고리에 걸친 사용자 관심사 샘플 데이터셋을 사용해 uniqArray의 작동 방식을 보여줍니다. 또한 고유 요소 수를 계산하는 방식의 차이를 보여주기 위해 uniq(arrayJoin())와 비교합니다.
Query
CREATE TABLE user_interests
(
    user_id UInt32,
    interests Array(String)
) ENGINE = Memory;

INSERT INTO user_interests VALUES
    (1, ['reading', 'gaming', 'music']),
    (2, ['gaming', 'sports', 'music']),
    (3, ['reading', 'cooking']);

SELECT 
    uniqArray(interests) AS unique_interests_total,
    uniq(arrayJoin(interests)) AS unique_interests_arrayJoin
FROM user_interests;
uniqArray 함수는 uniq(arrayJoin())와 마찬가지로, 모든 배열을 합쳐 고유한 요소의 개수를 계산합니다. 이 예시에서는:
  • uniqArray는 모든 사용자의 배열 전체에서 고유한 관심사가 5개이므로 5를 반환합니다: ‘reading’, ‘gaming’, ‘music’, ‘sports’, ‘cooking’
  • uniq(arrayJoin())도 5를 반환하며, 두 함수 모두 모든 배열을 합쳐 고유한 요소의 개수를 계산한다는 것을 보여줍니다
Response
   ┌─unique_interests_total─┬─unique_interests_arrayJoin─┐
1. │                      5 │                          5 │
   └────────────────────────┴────────────────────────────┘

관련 항목

마지막 수정일 2026년 6월 10일