見出し画像

ブレンドと結合の違いを検証してみた

こんにちは。Riekoです。
前回ブレンドについて記事を書きましたが、今回はブレンドと結合についてその違いをお話したいと思います。
概念的なところで止まっている方が、画像を見て理解できればなぁという感じです。
それでは行ってみましょう!

結合とは

結合とは、同じデータソース内にある複数の異なるデータを1つにまとめるときに使います。
Excelなら同じシートにある場合ですね。
そして一般的に、トランザクションとマスタ同士の結合に使われることが多いです。

ブレンドとは

異なるデータソース内にある複数の異なるデータの場合で、そのデータ同士の詳細レベルが異なる場合に使います。
Excelなら異なるブックにあるシートを接続する場合ですね。
接続するデータがどちらもトランザクションテーブルの場合に使われることが多いです。

サンプルデータの紹介

今回使用するサンプルデータを紹介します。
前回の記事同様、果物の販売と在庫のデータなのですが、
今回は果物名に重複があります。


重複のある果物販売データ


重複のある果物在庫データ

では、このデータソースをくっつけていきましょう!
まずは結合からです。

完全外部結合で結合してみる


完全外部結合の結果

今回の場合、どちらもお互い存在しない果物名があるので、わかりやすいように完全外部結合にしてみました。(販売されていないが在庫がある果物があり、在庫がないのに販売されている果物がある)

結合では集計されずに接続される

結合では結合キーで集計されずに接続されるのがポイントです。
画像の右下を見ていただけると、リンゴ、みかんの場合それぞれ2行あるのがわかります。「リンゴ」で販売数、在庫数を集計せずに接続しているので、1個1個の行が残るわけですね。

完全外部結合のクロス集計

シンプルですがクロス集計を作ってみました。


完全外部結合のクロス集計

この場合、どちらもお互い存在しない果物がNULLとして表示されます。
マンゴー、柿は在庫だけあるので販売はNULL、
なしは販売だけあるので在庫がNULL、となっています。
因みにこのクロス集計表の場合、しっかりディメンションで集計されているので、「リンゴ」「みかん」が2行出てくることはありません。
それではブレンドはどうでしょうか?見てみましょう!

ブレンドした場合データソースは?


ブレンドした場合の果物販売データソース


ブレンドした場合の果物在庫データソース

ブレンドした場合、データソースは2つの異なるデータソースです。
なので、データソースを切り替えて一つずつ見なければなりません。
データソースタブで結合された状態で見ることはできません。
どんな風に結合されているのか、シートで見てみましょう

ブレンドのクロス集計


ブレンドのクロス集計表

ブレンドのクロス集計、結合とは違いますね。
なぜ違うのか、それは左外部結合だからです。
なので、結合のときに完全外部ではなく左外部結合を選んで入れば、この表と同じ結果になります。
ただ、気を付けるべきはどちらが左なのか、結合の時はデータソースの画面を見て、ブレンドの時は最初にドロップするデータソースをよく考えて判断しましょう。

ブレンドのクロス集計を見てみると、販売はあるが在庫のない「なし」(梨)の在庫がNULLになっていますね。
これは果物販売データに対して左結合になっているからで、
果物在庫データに対して左結合なら「マンゴー」「柿」がNULLになります。
ブレンドの時はシートごとにどちらかがプライマリーデータソースかを選択できるので、用途に応じて切り替えましょうということは前回お話しました。


おわりに

いかがでしたでしょうか?
ブレンドと結合の違いは感覚で理解される方もいますし、入ってきやすいかもしれません。
今回この記事を書いたのは、DataSaberのKTさんの動画の中で扱ったメーカーデータが、製品IDに対して存在しない値がないので左外部結合だということを意識しづらく、私の中でも整理するために書かせていただきました。
皆様の中でも参考になったら幸いです。
最後まで読んでいただきありがとうございました。

Rieko

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