집계 함수

집계 함수 (Aggregation Functions)

집계 함수는 행 그룹에 대해 단일 결과를 반환해요. 아래 페이지는 각 함수에 대한 상세 시그니처, 사용 예시, 참고 사항을 제공해요.

출처: 문서

본문

기본 집계

Function Description
COUNT 행 수
SUM / SUMMV 값의 합
MIN / MINMV 최소값
MAX / MAXMV 최대값
AVG / AVGMV 값의 평균
MODE 가장 빈번한 값
HISTOGRAM 값의 히스토그램
SUMPRECISION BigDecimal을 사용한 고정밀 합
ANYVALUE 그룹의 임의의 비-null 값
BOOLAND / BOOLOR 불리언 값에 대한 논리 AND/OR

배열 및 문자열 집계

Function Description
ARRAYAGG 값을 배열로 수집
LISTAGG 값을 구분된 문자열로 연결
SUMARRAYLONG long 배열의 요소별 합
SUMARRAYDOUBLE double 배열의 요소별 합

통계 함수

Function Description
SKEWNESS 분포의 비대칭도
KURTOSIS 분포의 첨도
DISTINCTSUM / DISTINCTAVG 고유 값의 합/평균
EXPRMIN / EXPRMAX min/max 측정을 가진 행의 컬럼 프로젝션
ARG_MIN / ARG_MAX min/max 측정을 가진 행의 컬럼 프로젝트

집합 및 스케치 함수

Function Description
IDSET 효율적 필터링을 위한 IdSet 구축

스케치 기반 함수(FrequentItems, CPC, HLL+, ULL, Tuple)는 Sketch Functions를 참조하고, 퍼널 분석 함수는 Funnel Functions를 참조하세요.

고유 카운트 (Distinct Counting)

Function Description
DISTINCT 정확한 고유 값
DISTINCTCOUNT 정확한 고유 카운트
DISTINCTCOUNTBITMAP bitmap을 사용한 고유 카운트
DISTINCTCOUNTHLL HLL을 사용한 근사 고유 카운트
DISTINCTCOUNTTHETASKETCH Theta sketch를 사용한 고유 카운트
DISTINCTCOUNTSMARTHLL 하이브리드 정확/HLL 고유 카운트

스케치 기반 고유 카운트 함수(CPC, HLL+, ULL, Tuple)는 Sketch Functions를 참조하세요.

백분위 함수

Function Description
PERCENTILE 정확한 백분위
PERCENTILEEST 추정 백분위
PERCENTILEKLL KLL sketch를 사용한 백분위
PERCENTILETDIGEST T-Digest를 사용한 백분위

Window 관련 함수

Function Description
FIRST_VALUE / LAST_VALUE 창의 첫/마지막 값
LEAD / LAG 후속/선행 행 접근
FIRSTWITHTIME / LASTWITHTIME 시간 기준 첫/마지막 값

Multi-Value 컬럼 함수

다음 집계 함수는 multi-value 컬럼에 사용할 수 있어요.

Function Description
COUNTMV multi-value 컬럼의 개수를 반환
MINMV 숫자 multi-value 컬럼의 최소값 반환
MAXMV 숫자 multi-value 컬럼의 최대값 반환
SUMMV 숫자 multi-value 컬럼 값의 합 반환
AVGMV 숫자 multi-value 컬럼 값의 평균 반환
MINMAXRANGEMV 숫자 multi-value 컬럼의 max - min 값 반환
PERCENTILEMV 숫자 multi-value 컬럼의 N번째 백분위 반환
PERCENTILEESTMV multi-value 컬럼에 대해 Quantile Digest를 사용해 N번째 백분위 반환
PERCENTILETDIGESTMV multi-value 컬럼에 대해 T-Digest를 사용해 N번째 백분위 반환
DISTINCTCOUNTMV multi-value 컬럼의 고유 값 개수 반환
DISTINCTCOUNTBITMAPMV multi-value 컬럼에 대해 bitmap을 사용해 고유 값 개수 반환
DISTINCTCOUNTHLLMV multi-value 컬럼에 대해 HLL을 사용해 근사 고유 개수 반환
DISTINCTCOUNTRAWHLLMV multi-value 컬럼에 대해 HyperLogLog 응답을 문자열로 직렬화해 반환
DISTINCTSUMMV 숫자 multi-value 컬럼 고유 값의 합 반환
DISTINCTAVGMV 숫자 multi-value 컬럼 고유 값의 평균 반환

스케치 기반 multi-value 함수(HLL+)는 Sketch Functions를 참조하세요.

집계의 FILTER 절

Pinot는 집계 쿼리에서 FILTER 절을 지원해요.

SELECT SUM(COL1) FILTER (WHERE COL2 > 300),
       AVG(COL2) FILTER (WHERE COL2 < 50)
FROM MyTable WHERE COL3 > 50

위 쿼리에서 COL1은 COL2 > 300 and COL3 > 50인 행에 대해서만 집계돼요. 마찬가지로 COL2는 COL2 < 50 and COL3 > 50인 곳에서 집계돼요.

NULL Value Support가 활성화되면 집계를 수행하는 동안 null 값을 필터링할 수 있어요.

SELECT SUM(COL1) FILTER (WHERE COL1 IS NOT NULL)
FROM MyTable WHERE COL3 > 50

더 이상 사용되지 않는 함수

Function Description
FASTHLL 직렬화된 HyperLogLog를 String 형식으로 저장. BYTES 형식의 직렬화된 HyperLogLog를 지원하는 DISTINCTCOUNTHLL보다 성능이 낮음.
FASTHLLMV FASTHLL의 multi-value 버전. 역시 DISTINCTCOUNTHLL을 위해 deprecated.

다음 단계

더 알아보기 (Learn more)