기본 집계
내장 메서드
| 메서드 | SQL 대응식 | 설명 |
|---|---|---|
sum() | SUM() | 값의 합계 |
mean() | AVG() | 평균 |
count() | COUNT() | NULL이 아닌 값의 개수 |
min() | MIN() | 최솟값 |
max() | MAX() | 최댓값 |
median() | MEDIAN() | 중앙값 |
std() | stddevPop() | 표준 편차 |
var() | varPop() | 분산 |
nunique() | COUNT(DISTINCT) | 고유한 값의 개수 |
GroupBy 집계
단일 집계
다중 집계
명명된 집계
여러 개의 GroupBy 키
통계 집계
| 메서드 | SQL 대응식 | 설명 |
|---|---|---|
quantile(q) | quantile(q) | q번째 분위수 (0-1) |
skew() | skewPop() | 왜도 |
kurt() | kurtPop() | 첨도 |
corr() | corr() | 상관관계 |
cov() | covar() | 공분산 |
sem() | - | 평균의 표준 오차 |
조건부 집계
| Function | ClickHouse | Description |
|---|---|---|
sum_if(cond) | sumIf() | 조건을 만족하는 값의 합계 |
count_if(cond) | countIf() | 조건을 만족하는 개수 |
avg_if(cond) | avgIf() | 조건을 만족하는 평균값 |
min_if(cond) | minIf() | 조건을 만족하는 최솟값 |
max_if(cond) | maxIf() | 조건을 만족하는 최댓값 |
수집 집계
| 함수 | ClickHouse | 설명 |
|---|---|---|
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() | 순서상 마지막 값 |
윈도우 함수
순위 함수
| 함수 | SQL | 설명 |
|---|---|---|
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 | Description |
|---|---|---|
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번째 값 |
누적 함수
| 메서드 | 설명 |
|---|---|
cumsum() | 누적 합계 |
cummax() | 누적 최댓값 |
cummin() | 누적 최솟값 |
cumprod() | 누적 곱 |
diff(n) | n개 이전 행과의 차이 |
pct_change(n) | n개 이전 행 대비 백분율 변화 |
롤링 윈도우
F 네임스페이스
F 네임스페이스는 ClickHouse 함수에 접근할 수 있게 해줍니다.
Import
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/... |