🔗
概念 #Tableau #資格試験 #Desktop Specialist #JOIN #UNION #リレーションシップ 📚 Tableau Desktop Specialist

Tableau|データモデル(リレーションシップ・JOIN・UNION)

リレーションシップとJOINの違い・4種類のJOIN・UNIONの使い方を図解で解説。試験範囲1.2の完全カバー。

データモデル:リレーションシップ・JOIN・UNION(試験範囲 1.2)

この章で学ぶこと

  • リレーションシップとJOINの違いを説明できる
  • 各JOINタイプ(INNER/LEFT/RIGHT/FULL)の違いを理解する
  • UNIONの使い方と使用場面を理解する

概念解説

データモデルとは

Tableauのデータソースで複数のテーブルをどう組み合わせるかを定義するもの。

主な方法は3種類:

方法概要用途
リレーションシップテーブルを柔軟に関連付ける(Tableau独自)異なる粒度のテーブルの結合
JOINSQLのJOINと同じ。行レベルで結合同じ粒度のテーブルの結合
UNIONテーブルを縦に積み上げる同じ構造のテーブルの統合

リレーションシップ(Relationship)

Tableau 2020.2以降の標準的な結合方式。

  • データソースページで、テーブルをキャンバスに配置して繋ぐだけ
  • 行レベルのJOINをしない → ビューで使うフィールドに応じて自動的に適切なクエリを生成
  • 異なる粒度のテーブルを扱うときに重複や欠損が起きにくい
[注文テーブル] ←→ [顧客テーブル](顧客IDで関連)

リレーションシップのメリット:

  • NULL処理・重複データの問題が少ない
  • 各テーブルが独自の粒度を保てる
  • パフォーマンスが最適化される

JOIN

SQLのJOINと同様に、行レベルでテーブルを結合する。

データソースページで「結合」タブを選択して設定。

JOINの種類

JOINの種類

JOIN種別返すデータイメージ
INNER JOIN両テーブルで一致するレコードのみ積集合
LEFT JOIN左テーブル全件 + 右テーブルの一致分左優先
RIGHT JOIN右テーブル全件 + 左テーブルの一致分右優先
FULL OUTER JOIN両テーブルの全件和集合

図解:

左テーブル(注文)  右テーブル(顧客)

INNER JOIN:
[一致する注文のみ] × [一致する顧客のみ]

LEFT JOIN:
[全注文] × [一致する顧客 or NULL]

RIGHT JOIN:
[一致する注文 or NULL] × [全顧客]

FULL OUTER JOIN:
[全注文] × [全顧客](一致しないものはNULL)

実際の例:

注文ID顧客ID顧客名(JOINで追加)
001C001田中 太郎
002C002鈴木 花子
003C999NULL(顧客不明の場合)

LEFT JOINの場合、顧客IDが一致しなくても注文レコードは残り、顧客名がNULLになる。


リレーションシップ vs JOIN:使い分け

状況推奨
異なる粒度のテーブル(注文テーブルと月別予算テーブル等)リレーションシップ
同じ粒度で完全に行結合したいJOIN
細かいSQL的制御が必要JOIN(またはカスタムSQL)
データの重複を避けたいリレーションシップ

UNION

同じ構造(列が同じ)の複数テーブルを縦に積み上げて1つにする。

テーブルA(2022年データ)    テーブルB(2023年データ)
 注文ID | 売上               注文ID | 売上
 001   | 1000               201   | 2000
 002   | 1500               202   | 2500

         ↓ UNION

 注文ID | 売上
 001   | 1000
 002   | 1500
 201   | 2000
 202   | 2500

UNIONの使用場面:

  • 年次ファイルが別々に存在する場合(2021.csv, 2022.csv, 2023.csv)
  • 同じフォーマットの複数ファイルを一括分析する場合

ワイルドカードUNION: ファイル名パターンで自動的に複数ファイルをUNIONできる 例:sales_202*.csv → 2020年以降のファイルをすべて統合


よくある間違い・ひっかけポイント

❌ 「JOINとリレーションシップは同じ」
✅ JOINは行レベルの結合。リレーションシップはビューに応じた柔軟な結合

❌ 「UNIONは列方向にデータを追加する」
✅ UNIONは**行方向(縦)**に積み上げる。列追加はJOINの役割

❌ 「LEFT JOINは左テーブルのデータのみ返す」
✅ LEFT JOINは左テーブル全件+一致する右テーブルのデータを返す

❌ 「INNER JOINが最も多くのデータを返す」
✅ FULL OUTER JOINが最も多くのデータを返す


試験対策ポイント

  • INNER JOIN = 一致するものだけ
  • LEFT JOIN = 左テーブル全件(一致しない右はNULL)
  • UNION = 縦に積む(同じ構造が必要)
  • リレーションシップ = Tableau独自の柔軟な結合(2020.2以降)
  • JOINはデータソースページの「物理テーブル」レイヤーで設定
  • リレーションシップはデータソースページの「論理テーブル」レイヤーで設定

確認問題

Q1. 2022年の販売データと2023年の販売データが別々のCSVファイルに存在します。同じ列構造です。これらを1つのデータソースにまとめるための最適な方法はどれですか?

  • A. JOIN
  • B. UNION
  • C. リレーションシップ
  • D. データブレンド

正解:B 同じ構造のデータを縦に積む場合はUNIONを使用する。


Q2. 注文テーブル(全注文)と顧客テーブルを結合して、顧客情報がない注文も含めてすべての注文を表示したい場合、どのJOINを使いますか?

  • A. INNER JOIN
  • B. RIGHT JOIN
  • C. LEFT JOIN(注文テーブルが左)
  • D. FULL OUTER JOIN

正解:C 注文テーブルを左に置いてLEFT JOINすると、顧客情報がなくても全注文が表示される。


Q3. リレーションシップとJOINの違いとして正しいものはどれですか?

  • A. リレーションシップはTableau 2020.2以前の機能
  • B. JOINはビューで使うフィールドに応じて自動でクエリを最適化する
  • C. リレーションシップは行レベルでデータを結合しない
  • D. JOINは異なるデータソース間でのみ使用できる

正解:C リレーションシップは行レベルのJOINをせず、ビューの内容に応じて適切なクエリを生成する。

  1. 1. 📊Tableau Desktop Specialist 学習ロードマップ
  2. 2. 🔌Tableau|ライブ接続と抽出(.hyper/.TDS)
  3. 3. 🔗Tableau|データモデル(リレーションシップ・JOIN・UNION)
  4. 4. 🏷️Tableau|データプロパティの管理(別名・地理的役割・データ型)
  5. 5. 📈Tableau|基本チャートの作成(棒・折れ線・散布図・地図・二重軸など)
  6. 6. 🗂️Tableau|データ整理とフィルター(グループ・セット・階層・日付フィルター)
  7. 7. 🧮Tableau|分析機能(参照線・表計算・ビン・計算フィールド・パラメーター)
  8. 8. 🎨Tableau|書式設定(色・形状・サイズ・フォント・アニメーション・凡例)
  9. 9. 🖥️Tableau|ダッシュボードとストーリー(アクション・デバイスレイアウト・Viz in Tooltip)
  10. 10. 📤Tableau|共有とエクスポート(.twbx・PDF・PowerPoint・Tableau Server)
  11. 11. 📐Tableau|ディメンションとメジャーの違い
  12. 12. 🔵Tableau|連続(緑)と離散(青)の違い
  13. 13. 🔢Tableau|集計の仕組み(SUM・AVG・COUNTD・粒度)
  14. 14. Tableau|補足:ページシェルフ・追加チャート・トレンドライン・製品ラインナップ
  15. 15. Tableau|確認問題:領域1 データ接続とデータ準備(20問)
  16. 16. Tableau|確認問題:領域2 データの探索と分析(30問)
  17. 17. Tableau|確認問題:領域3 インサイトの共有(25問)
  18. 18. Tableau|確認問題:領域4 Tableauの概念の理解(15問)