コンテンツにスキップ

横展開

1 つの列の値を、そのまま列の名前にして横に並べます。縦に積まれた「地域ごとの売上」をクロス集計表(ピボットテーブル)にするときに使います。

分析プロジェクトとの違い

見るところSQLビルダー分析プロジェクト
横に並べられる値の数100 まで上限なし
値の調べ方設定の時点でデータベースに問い合わせる実行時にデータから読む
集計関数合計 / 平均 / 最小値 / 最大値 / カウント / ユニークカウント同じ 6 つ
新しい列名英数字以外が _ に置き換わる値がそのまま使われる

入出力

ポート内容
入力データデータ
出力データデータ

設定項目

基準の列必須
縦に残す列。この列の値が同じ行が 1 行にまとまります。複数選べます。
列選択オプション
基準の列をまとめて選ぶための補助として特定の文字列から始まる列・で終わる列・を含む列・選択した列を除外するが並びますが、この機能ではここに入れた条件が実行に反映されません。基準の列は上の「基準の列」で 1 つずつ選んでください(下の注意)。
横展開する列必須
この列に入っている値が、新しい列の名前になります。1 つだけ選べます。
値の列必須
新しい列の中身になる値。1 つだけ選べます。
関数
同じマスに複数の行が来たときのまとめ方。合計 / 平均 / 最小値 / 最大値 / カウント / ユニークカウントの 6 つ。

列選択オプションが効きません

横に並ぶ値の調べ方

この機能だけは、設定を保存した時点でデータベースに問い合わせます。 「横展開する列」にどんな値が入っているかを知らないと、列の名前を決められないためです。

見るところ中身
何を問い合わせるか「横展開する列」の重複を除いた値
上限100 個。超えると設定できません
覚えておく期間前のノードを実行し直すか、「横展開する列」を変えるまで。そのあいだは問い合わせ直しません

出力される列

出力は基準の列と、横に並んだ列だけになります。それ以外の列は落ちます。

横に並ぶ列の名前は 横展開する列の名前_値 です。region 列に east と west があれば region_east と region_west になります。

生成される SQL

PostgreSQL につないで、店舗 ごとに region の値で 売上 を合計した場合です。

SELECT
"店舗",
SUM(CASE "region" WHEN 'east' THEN "売上" ELSE null END) AS "region_east",
SUM(CASE "region" WHEN 'west' THEN "売上" ELSE null END) AS "region_west"
FROM "orders"
GROUP BY "店舗"

値 1 つにつき CASE 式が 1 本増えます。これが 100 個までという上限の理由です。

エラーと対処

どのエラーも、設定を直してノードを実行し直せば消えます。

横に並べる値が多すぎる

「横展開する列」の値が 101 種類以上あると出ます。

横展開する要素が100個を超えています。減らして再度実行してください

直し方 — 手前に条件で行を絞り込みを置いて値の種類を減らすか、条件に応じて値を列に挿入でいくつかの値をまとめた列を作り、そちらを横展開してください。

列が選ばれていない

「基準の列」「横展開する列」「値の列」のどれかが空のまま実行すると出ます。

列を選択してください

直し方 — 3 つとも選んでください。

関数が選ばれていない

関数を選ばずに実行すると出ます。

関数を選択してください

直し方 — 6 つのうちどれかを選んでください。

上流にない列が選ばれている

前のノードで列が消えたあとに実行すると出ます。

存在しない列が選択されています

直し方 — 列を選び直してください。

入力がつながっていない

前のノードがつながっていないと出ます。

カラムが選択されていません。条件を確認してください

直し方 — 入力にノードをつないでください。

よく使う例

1. 店舗 × 地域のクロス集計表を作る

お題 — 店舗ごと・地域ごとの売上を 1 枚の表にしたい

入力 — 店舗 region 売上

設定 — 基準の列 店舗、横展開する列 region、値の列 売上、関数は合計

出力 — 店舗 region_east region_west

2. 月を横に並べる

お題 — 商品ごとに月別の売上を横に並べたい

入力 — 商品コード 年月 売上

設定 — 基準の列 商品コード、横展開する列 年月、値の列 売上、関数は合計

出力 — 商品コード と月のぶんだけの列。年月 が 2026-04 のような形なら 年月_2026_04 になります

3. 件数を横に並べる

お題 — 金額ではなく、何件あったかを横に並べたい

入力 — 店舗 region 注文ID

設定 — 値の列に 注文ID、関数はカウント

出力 — マスごとの件数

4. 日本語の値を先に英数字にする

お題 — 地域 に 東京 大阪 が入っていて、列名が重なってしまう

入力 — 店舗 地域(東京 大阪)売上

設定 — 手前に条件に応じて値を列に挿入を置き、新規列 地域コード に「地域 等しい 東京 → tokyo」「地域 等しい 大阪 → osaka」の 2 条件を作る。横展開する列にはこの 地域コード を指定する

出力 — 地域コード_tokyo 地域コード_osaka

5. 横に戻す

お題 — 横に並べた表を、もう一度縦に戻したい

入力 — 店舗 region_east region_west(例 1 の出力)

設定 — 縦展開をつなぐ

出力 — label と value の 2 列になります

関連