VLOOKUPから始めるBI(tableau)やデータベースで使うデータの結合についてその1
皆さんはデータ結合していますか?
自分は当たり前になってしまっていて、無意識にやっているけれども、わからない人たちに説明するのが本当に難しいのがこの部分。
しかし、データ結合ができると色々なデータを組み合わせた形での表現の幅が圧倒的に広がります。
これを私なりの限界まで理解してもらえるように分かりやすく書いていきたいと思う。
可視化をする際にデータの構造がどれだけイメージできるかという思考だ。
ちなみに私の思考だと以下のようになる。
となる。BIツールや各種データを使う形にするうえでデータ結合は欠かせない。どんな時に必要になるのかというと簡単な順で例を挙げる。
レベル1:購入履歴(トランザクション)データの会員番号と会員一覧(マスタ)を結合して年代情報を使う
こういう購入履歴があるとする。
一旦グラフ化するとここまでの表現になる。
これだと何にも分からん。誰が買ったのか知りたい。
そこで繋げるベース(トランザクション)の方は変えずにマスタの情報を追加することになる。
具体的には以下のようなイメージ
なお、Excelをお使いの皆様はこの位の事はVLOOKUPでやっていることだろう。VLOOKUPも立派なデータ結合である。
これをデータベース結合の種類では4つある結合方法の内、左側結合(※最下部参照)と呼ぶ。
この様なデータを作るとここまで表現できるようになり
データ結合で可視化の範囲が広がることになる。
だが、さらに問題が出てくる。
完成系のデータを使ったときもちろんこれだと会員情報はあるけど購入していない人。上のデータでいうと「魔法使い」のデータは出てこないことになり、ある意味欠損している。つまりはデータ上に出てこないことになる。
これを発生させないためには完全外部結合なのだが、その場合以下のようになるが、情報が歯抜けになるという問題がある。
具体的には以下のようなイメージだ。
※この場合ベースのトランザクションデータに結合できる会員が
いないため、左側の情報はなし(NULLともいう)になるが結合後
右側の情報を残すためこの様になる。
この様な理由もあり、あまり左側結合以外の結合を使うケースは正直少ない。
今回は全てのベースになる結合である左(右)側結合と完全外部結合について今回は説明した。
次回は集計を前提としたデータ結合について説明しようと思う。
需要あるのかなw
分かりやすかったとか需要ある場合はいいねとかコメントくれるとすぐ書くかもです笑
※左(右)側結合
左にトランザクションを置いて右側にマスタを繋げる場合、データベースでは左側結合という。右が元データになる場合は右側結合になる。
情報追加という点で非常に使うシーンが多い。
基本的には履歴やログのようなトランザクションデータにマスタをつなぐという用途が一番多いだろう。マスタは繋げられる側なのでIDの重複等は基本的に許されない※トランザクションデータから見たときにIDが重複してるとどちらを繋いだほうが良いかわからなくなるため