SQL 집계 함수

SQL 집계 함수 (SQL aggregation functions)

Druid SQL 에서 사용할 수 있는 집계 함수들을 정리한 문서예요. 단일 행으로 축약하는 집계(aggregate) 함수들부터 GROUP BY와 함께 쓰는 방식까지 다뤄요.

출처: 문서

본문

Apache Druid는 두 가지 쿼리 언어를 지원해요: Druid SQL 과 native 쿼리. 이 문서는 SQL 언어를 설명해요.

집계 함수 (Aggregation functions)

집계 함수는 여러 입력 행을 하나의 요약 행으로 축약해요. GROUP BY 쿼리에서 쓰면 그룹당 하나의 결과 행을 만들어요. 집계 함수는 GROUP BY 절 없이 쿼리 전체에 대해 하나의 결과 행을 만들 수도 있어요.

다음 표는 Druid SQL에서 사용할 수 있는 집계 함수를 정리한 거예요:

| 함수 | 설명 | | APPROX_COUNT_DISTINCT(expr) | expr의 대략적인 고유 값 수를 계산해요. DataSketches Theta 스케치를 사용해요. | | APPROX_COUNT_DISTINCT_DS_HLL(expr) | HLL 스케치 기반 대략적 고유 값 수. precise 및 useBootstrap 파라미터를 지원해요. | | APPROX_COUNT_DISTINCT_DS_THETA(expr) | Theta 스케치 기반 대략적 고유 값 수. | | APPROX_QUANTILE(expr, probability, [resolution]) | 대략적인 분위수(quantile)를 계산해요. | | APPROX_QUANTILE_DS(expr, probability, [k]) | DataSketches Quantiles 스케치 기반 대략적 분위수. | | APPROX_QUANTILE_FIXED_BUCKETS(expr, probability, numBuckets, lowerLimit, upperLimit) | 고정 버킷 히스토그램 기반 대략적 분위수. | | ARG_MAX(expr, arg) | expr이 최대인 행의 arg 값을 반환해요. | | ARG_MIN(expr, arg) | expr이 최소인 행의 arg 값을 반환해요. | | AVG(expr) | 평균. DOUBLE을 반환해요. | | BIT_AND(expr), BIT_OR(expr), BIT_XOR(expr) | 비트 단위 AND/OR/XOR 집계. | | COUNT(*) | 행 수. | | COUNT(expr) | expr이 null이 아닌 행 수. | | COUNT(DISTINCT expr) | expr의 고유 값 수 (정확한 카운트). | | COUNT_IF(cond) | 조건 cond가 참인 행 수. | | COUNT_FILTERED(expr) / SUM_FILTERED(expr) 등 | 필터된 집계. 일부 함수는 _FILTERED 접미사를 지원해요. | | EARLIEST(expr, [maxBytes]) | 가장 이른(첫 번째) 값. | | LATEST(expr, [maxBytes]) | 가장 늦은(마지막) 값. | | GROUPING(expr1, expr2, ...) | GROUP BY 그룹화 연산을 나타내는 비트마스크를 반환해요. | | MAX(expr) | 최댓값. | | MIN(expr) | 최솟값. | | SUM(expr) | 합계. | | STDDEV(expr), STDDEV_POP(expr), STDDEV_SAMP(expr) | 표준편차. | | VARIANCE(expr), VARIANCE_POP(expr), VARIANCE_SAMP(expr) | 분산. | | STRING_AGG(expr, separator) | 값을 구분자로 이어 붙인 문자열. |

각 함수는 GROUP BY 결과의 각 그룹에 대해 독립적으로 계산돼요. ORDER BY는 집계 함수의 결과에는 적용되지 않고 GROUP BY 컬럼에만 적용돼요.

더 알아보기 (Learn more)