見出し画像

Tableau のリレーションシップ機能 その5 ~ 結合キーが複数行ある場合① ~

一旦まとめようと思いましたが、もう少しリレーションシップの特徴を見ていくことにします。前回使用したテーブルは、CST_CDで見るとどちらも単一の行になっています。では、複数行ある場合はどうなるでしょうか? 実験していきたいと思います。

テーブル: TRN_02 と テーブル: CST_01 を使用します。このブログで使用するサンプルデータは Google Drive で共有しますので、次のリンク先からダウンロードしてご使用下さい。
Google Drive フォルダー

各テーブルはこのようになっています。

TRAN_02
CST_01

テーブル: TRAN_01 にODR_CD: 6 が加わっており、CST_CD は "b" です。CST_CD: bは二行目にもあります。
最初に、これを テーブル: CST_01 と "結合" して結果を確認してみましょう。

結果はこのようになりました。

"結合" の場合の集計(合計)

T_QTY も C_CST_AGE も合計を表示していますが、CST_CD: b の年齢 (C_CST_AGE) が 40 になっています。データベース的には正しい集計ですが、人間的には正しい集計とは言えません。テーブル: CST_01 が示すように、C_CST_CD: b の年齢は 20 です。40になってしまう理由は、TRAN_01 にある二つの行それぞれに、C_CST_AGE が結合され、その合計が表示されてしまっているのです。動画で説明したように集計を平均に変えれば 20 にすることは可能ですが直感的ではありません。

今度はリレーションを使って確認してみましょう。

"リレーションシップ" の場合の集計(合計)

CST_CD: b の年齢 (C_CST_AGE) が 20 になりました。リレーションでは、TRAN_01 と CST_01 それぞれが CST_CD で集計されてから結合されるので、そのままでも 20 が表示されます。こちらのほうが人間が考える操作に近いのではないでしょうか?

この実験のように、リレーションは人が陥りやすい集計の誤りを回避してくれています。便利ですよね。これが、Tableau が、なぜリレーションシップを新たに開発したか?の一つの理由です。

今回は、集計の事例を踏まえて、"結合" と "リレーションシップ" の違いを確かめてみました。"リレーションシップ" では、テーブルごとに集計が行われてから結合が行われることをよく覚えておいて下さい。



この記事が気に入ったらサポートをしてみませんか?