データ集計
キー列ごとに値をまとめます。GROUP BY と集計関数の SELECT を組み立てる機能です。
分析プロジェクトとの違い
| 見るところ | SQLビルダー | 分析プロジェクト |
|---|---|---|
| 集計関数 | 合計 / 平均 / 最小値 / 最大値 / カウント / ユニークカウント | 上に加えて中央値・標準偏差 |
| キー列を使わない全体集計 | ない(キー列は必須) | ある |
| 欠損値の置換 | ない | ある |
| 出力の列名 | sum_売上 のように関数名が前に付く | 選べる |
中央値と標準偏差は SQLビルダーでは出せません。 必要なら先にデータソース化するで nehan に取り込み、分析プロジェクトのデータ集計を使ってください。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
設定項目
- キー列を選択必須
- この列の値が同じ行を 1 行にまとめます。複数選べます。
- 集計設定
- 関数と対象列の組を足していきます。1 つの組は下の 3 つからできています。
- 関数を選択必須
- 合計 / 平均 / 最小値 / 最大値 / カウント / ユニークカウントの 6 つ。
- 集計対象列を選択
- 選べる列は関数によって変わります。合計と平均は数値列だけ、ほかの 4 つは数値・文字列・日付・日付時刻から選べます。複数選べます。
- 列選択オプション
- 集計対象列をまとめて選ぶための補助です。特定の文字列から始まる列・で終わる列・を含む列を一括で選べ、選択した列を除外するで裏返せます。
出力される列
出力はキー列と集計結果だけになり、それ以外の列は落ちます。
集計結果の列名は 関数名_元の列名 です。
| 関数 | 列名 |
|---|---|
| 合計 | sum_売上 |
| 平均 | avg_売上 |
| 最小値 | min_売上 |
| 最大値 | max_売上 |
| カウント | count_売上 |
| ユニークカウント | uniq_cnt_売上 |
英字の列名は小文字になります。 Sales を合計すると sum_sales です。
生成される SQL
PostgreSQL につないで、店舗 ごとに 売上 を合計し、顧客番号 のユニークカウントを取った場合です。
SELECT "店舗", SUM("売上") AS "sum_売上", COUNT(DISTINCT "顧客番号") AS "uniq_cnt_顧客番号"FROM "orders"GROUP BY "店舗"ユニークカウントだけは COUNT(DISTINCT ...) になり、ほかは関数名がそのまま使われます。
エラーと対処
どのエラーも、設定を直してノードを実行し直せば消えます。
上流にない列が選ばれている
前のノードで列が消えたあとに実行すると出ます。
存在しない列が選択されています
直し方 — キー列と集計対象列を選び直してください。
入力がつながっていない
前のノードがつながっていないと出ます。
カラムが選択されていません。条件を確認してください
直し方 — 入力にノードをつないでください。
よく使う例
1. 店舗ごとの売上を合計する
お題 — 店舗別の売上合計を見たい
入力 — 店舗 売上 顧客番号
設定 — キー列 店舗、合計 → 売上
出力 — 店舗 sum_売上
2. 2 つの軸でまとめる
お題 — 店舗と月の組でまとめたい
入力 — 店舗 年月 売上
設定 — キー列に 店舗 と 年月 の 2 つ、合計 → 売上
出力 — 組ごとに 1 行
3. 実人数を数える
お題 — 延べ件数ではなく、何人が買ったかを知りたい
入力 — 店舗 顧客番号
設定 — キー列 店舗、ユニークカウント → 顧客番号
出力 — 店舗 uniq_cnt_顧客番号
4. 1 つのノードで合計と平均を両方出す
お題 — 合計と平均を並べて見たい
入力 — 店舗 売上
設定 — 集計設定を 2 組作る。1 組目は合計 → 売上、2 組目は平均 → 売上
出力 — sum_売上 と avg_売上 が並びます
5. 名前が似た列をまとめて集計する
お題 — 売上_1月 〜 売上_12月 の 12 列を一度に合計したい
入力 — 商品 売上_1月 〜 売上_12月
設定 — 列選択オプションの「特定の文字列から始まる列を一括選択」に 売上_ を入れる
出力 — 12 本の sum_売上_◯月 が出ます
6. 集計の前に期間を絞る
お題 — 今年のぶんだけ集計したい
入力 — 店舗 受注日 売上
設定 — 手前に条件で行を絞り込みを置いてから集計する
出力 — WHERE が先に効くので、集計の対象が減ります