ARRAY_UNION_AGG

ARRAY_UNION_AGG (배열 합집합 집계)

컬럼의 입력 배열들에서 고유 값들의 합집합을 담은 ARRAY를 반환해요. ARRAY_UNIQUE_AGG가 만든 배열들의 고유 값을 집계하는 데 이 함수를 사용할 수 있어요.

출처: Snowflake SQL Reference - ARRAY_UNION_AGG

본문

구문

집계 함수:

ARRAY_UNION_AGG( <column> )

윈도우 함수:

ARRAY_UNION_AGG( <column> ) OVER ( [ PARTITION BY <expr> ] )

OVER 절에 대한 자세한 내용은 윈도우 함수 구문 및 사용법을 참고해요.

인자

column

고유 값을 가진 배열들(ARRAY_UNIQUE_AGG가 만든 배열들)을 담고 있는 컬럼이에요.

반환 값

이 함수는 column의 배열들에서 고유 값들을 담은 배열을 반환해요. 배열 안의 값들은 특별한 순서가 없으며, 순서는 결정적이지 않아요.

이 함수는 멀티셋(multiset) 의미론을 사용한다는 점에 주의하세요. 즉, 단일 입력 배열에서 특정 값이 나타나는 최대 횟수가 출력 배열에서 그 값이 나타나는 횟수를 결정해요. 예시를 참고해요.

이 함수는 column과 column의 배열 안의 NULL 값을 무시해요. column에 NULL 값만 있거나 column을 담은 테이블이 비어 있으면 함수는 빈 배열을 반환해요.

사용 참고 사항

  • 이 함수는 다음 두 유형의 함수로 사용할 수 있어요:
    • 집계 함수
    • 윈도우 함수
  • 윈도우 함수로 호출되면 명시적 윈도우 프레임을 지원하지 않아요.
  • 구조화 배열(structured array)을 함수에 전달하면 함수는 같은 타입의 구조화 배열을 반환해요.

예시

집계: 배열의 합집합

다음 예시는 두 배열의 고유 값들의 합집합을 어떻게 반환하는지 보여줘요:

CREATE TABLE union_test(a array);

INSERT INTO union_test
    SELECT PARSE_JSON('[ 1, 1, 2]')
    UNION ALL
    SELECT PARSE_JSON('[ 1, 2, 3]');

SELECT ARRAY_UNION_AGG(a) FROM union_test;
+-------------------------+
| ARRAY_UNION_AGG(A)      |
+-------------------------+
| [ 1, 1, 2, 3]           |
+-------------------------+

이 연산은 멀티셋 의미론을 사용해요. 값 1은 입력 배열 중 하나에서 두 번 나타나므로 출력에도 두 번 나타나요.

더 알아보기