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)
- SQL 데이터 타입 — 집계 결과 타입에 대해 알아보세요.
- DataSketches 확장 — 근사 집계에 쓰이는 스케치를 자세히 살펴보세요.
- Druid SQL — SQL 쿼리 작성법을 알아보세요.