ARRAYAGG 함수

ARRAYAGG 함수

Apache Pinot의 ARRAYAGG 집계 함수는 여러 행의 값들을 배열로 모아줘요. INT, LONG, FLOAT, DOUBLE, BIG_DECIMAL, BOOLEAN, TIMESTAMP, STRING, JSON, BYTES, UUID 타입의 값을 수집할 수 있고, 선택적으로 DISTINCT 키워드를 쓰면 중복 없이 고유한 값만 모을 수 있어요.

출처: 문서

본문

ARRAYAGG 함수는 행들의 값을 배열로 집계해요. INT, LONG, FLOAT, DOUBLE, BIG_DECIMAL, BOOLEAN, TIMESTAMP, STRING, JSON, BYTES, UUID 타입의 값을 수집할 수 있어요. 선택적인 DISTINCT 키워드를 쓰면 고유한 값만 수집할 수 있어요.

시그니처

ARRAYAGG(colName, 'dataType')

ARRAYAGG(colName, 'dataType', 'DISTINCT')

dataType 파라미터는 INT, LONG, FLOAT, DOUBLE, BIG_DECIMAL, BOOLEAN, TIMESTAMP, STRING, JSON, BYTES, UUID 중 하나여야 해요. JSON 값은 문자열로 수집되고, UUID 값은 표준 UUID 문자열 형태로 반환돼요.

사용 예시

아래 예시는 Batch Quick Start를 기반으로 해요.

select ARRAYAGG(yearID, 'INT') AS years
from baseballStats
WHERE playerName = 'Barry Bonds'
years
[1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, ...]
select ARRAYAGG(league, 'STRING', 'DISTINCT') AS leagues
from baseballStats
WHERE playerName = 'Barry Bonds'
leagues
[NL, AL]

입력 컬럼이 멀티밸류(Multi-value)면 Pinot은 각 행의 값들을 출력 배열로 평탄화한 뒤 선택적인 distinct 단계를 적용해요.

더 알아보기 (Learn more)