基本集計
組み込みメソッド
| メソッド | SQL 相当 | 説明 |
|---|---|---|
sum() | SUM() | 値の合計 |
mean() | AVG() | 平均値 |
count() | COUNT() | NULL でない値の数 |
min() | MIN() | 最小値 |
max() | MAX() | 最大値 |
median() | MEDIAN() | 中央値 |
std() | stddevPop() | 標準偏差 |
var() | varPop() | 分散 |
nunique() | COUNT(DISTINCT) | 一意の値の数 |
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() | 条件を満たす場合の最大値 |
収集系集計関数
| 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() | 累積分布 |
値関数
| 関数 | 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 番目の値 |
累積関数
| 関数 | 説明 |
|---|---|
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/... |