DataStore 집계 함수
DataStore는 ClickHouse의 강력한 SQL 집계 기능을 활용하여 포괄적인 집계 및 윈도우 함수 지원을 제공합니다.
기본 집계
내장 메서드
| Method | SQL Equivalent | Description |
|---|---|---|
sum() | SUM() | 값의 합 |
mean() | AVG() | 평균 |
count() | COUNT() | NULL이 아닌 값의 개수 |
min() | MIN() | 최소값 |
max() | MAX() | 최대값 |
median() | MEDIAN() | 중앙값 |
std() | stddevPop() | 표준편차 |
var() | varPop() | 분산 |
nunique() | COUNT(DISTINCT) | 고유값의 개수 |
예시:
GroupBy 집계 연산
단일 집계
다중 집계
이름 지정 집계
여러 개의 GROUP BY 키
통계 집계(Statistical Aggregations)
| Method | SQL Equivalent | Description |
|---|---|---|
quantile(q) | quantile(q) | q번째 분위수(0-1) |
skew() | skewPop() | 왜도 |
kurt() | kurtPop() | 첨도 |
corr() | corr() | 상관계수 |
cov() | covar() | 공분산 |
sem() | - | 평균의 표준오차 |
예시:
조건부 집계
ClickHouse에 특화된 조건부 집계 함수입니다.
| Function | ClickHouse | Description |
|---|---|---|
sum_if(cond) | sumIf() | 조건을 만족하는 값의 합계 |
count_if(cond) | countIf() | 조건을 만족하는 값의 개수 |
avg_if(cond) | avgIf() | 조건을 만족하는 값의 평균 |
min_if(cond) | minIf() | 조건을 만족하는 값의 최소값 |
max_if(cond) | maxIf() | 조건을 만족하는 값의 최대값 |
예시:
컬렉션 집계 함수
값을 수집하는 ClickHouse 전용 함수입니다.
| Function | ClickHouse | Description |
|---|---|---|
group_array() | groupArray() | 배열로 수집 |
group_uniq_array() | groupUniqArray() | 고유 값을 배열로 수집 |
group_concat(sep) | groupConcat() | 문자열을 연결 |
top_k(n) | topK(n) | 가장 자주 등장하는 값 상위 K개 |
any() | any() | 임의의 값 |
any_last() | anyLast() | 마지막 값 |
first_value() | first_value() | 순서상 첫 번째 값 |
last_value() | last_value() | 순서상 마지막 값 |
예시:
윈도우 함수
순위 함수
| Function | SQL | Description |
|---|---|---|
row_number() | ROW_NUMBER() | 연속 행 번호 |
rank() | RANK() | 중간 값이 비는 순위(동순위 허용) |
dense_rank() | DENSE_RANK() | 중간 값이 비지 않는 연속 순위 |
ntile(n) | NTILE(n) | n개의 버킷으로 분할 |
percent_rank() | PERCENT_RANK() | 백분위 순위(0-1) |
cume_dist() | CUME_DIST() | 누적 분포 |
예시:
값 함수
| Function | SQL | 설명 |
|---|---|---|
lag(n) | LAG(col, n) | 이전 행 값 |
lead(n) | LEAD(col, n) | 다음 행 값 |
first_value() | FIRST_VALUE() | 윈도 내 첫 번째 값 |
last_value() | LAST_VALUE() | 윈도 내 마지막 값 |
nth_value(n) | NTH_VALUE(col, n) | 윈도 내 N번째 값 |
예시:
누적 함수
| Method | 설명 |
|---|---|
cumsum() | 누적 합 |
cummax() | 누적 최댓값 |
cummin() | 누적 최솟값 |
cumprod() | 누적 곱 |
diff(n) | n개 행 전과의 차이 |
pct_change(n) | n개 행 전 대비 백분율 변화 |
예시:
이동 윈도우
F 네임스페이스
F 네임스페이스는 ClickHouse FUNCTION에 대한 접근을 제공합니다.
임포트
F 함수 활용
F와 윈도우 함수
일반적인 집계 패턴
그룹별 상위 N
누적 합
이동평균
전년 대비
백분위수 순위
집계 메서드 요약
| 범주 | 메서드 |
|---|---|
| 기본 | sum, mean, count, min, max, median |
| 통계 | std, var, quantile, skew, kurt, corr, cov |
| 조건부 | sum_if, count_if, avg_if, min_if, max_if |
| 집합 | group_array, group_uniq_array, group_concat, top_k |
| 순위 | row_number, rank, dense_rank, ntile, percent_rank |
| 값 | lag, lead, first_value, last_value, nth_value |
| 누적 | cumsum, cummax, cummin, cumprod, diff, pct_change |
| 롤링(이동) | rolling().mean/sum/std/..., expanding().mean/sum/... |