データ処理のなかで欠かすことができない「データ結合」。
データ処理、データを取り扱うことができる言語・ツールはたくさんありますが、ほぼほぼ結合機能はどの言語・ツールにも実装されています。
データ処理になれている方は日常的に使用されていると思いますが、初心者にとってデータ処理を勉強するうえで最初の難関とも言えます。
そこで本記事ではデータ結合の種類を実データを交えて紹介します。
データ結合の種類
言語やツールによって書き方・呼び方・取り扱い方は微妙に異なりますが、主として使用する結合はこちらになります。
- 内部結合
- 外部結合
- 交差結合
- 統合結合
それぞれの結合についてベン図とデータをあわせて紹介していきます。
データについてはこちらを利用します。
二つのサービスのユーザー名ごとの契約金額のデータでユーザー名を結合キーとして結合していきます。
内部結合
内部結合は結合キーに指定したカラムのデータが両方に存在するデータのみ結合します。
ベン図とサンプルデータで表示するとこちらになります。
二つのデータに共通するユーザーはB,C,Dになるのでそのデータのみ結合されます。
SQL等ではinner joinといった名称で結合を行うことができます。
外部結合
外部結合は結合キーに指定してたデータが存在するものだけでなく、結合時に指定したテーブルのデータも出力します。
外部結合には下記の3種類があります。
- 左外部結合
- 右外部結合
- 完全外部結合
左外部結合
わかりやすくベン図から紹介します。
左側のデータをベースに右側のデータと共通するところはデータの結合が行われます。
サンプルデータの結合結果はこちらになります。
左側のデータにはユーザA~Dまであり、右側データと共有するとことはB,C,Dとなるので、そのデータが結合されます。
SQL等ではleft joinといった名称で結合を行うことができ、外部結合で一般的に使用される結合になります。
右外部結合
左外部結合の右版になり、こちらもベン図から紹介します。
右側のデータをベースに左側のデータと共通するところはデータの結合が行われます。
サンプルデータの結合結果はこちらになります。
右側のデータにはユーザB~Fまであり、右側データと共有するとことはB,C,Dとなるので、そのデータが結合されます。
SQL等ではright joinといった名称で結合を行うことができます。
一般的にこの手の結合は左外部結合で処理することが多いので、あまり右外部結合を使用する機会は少ないです。
完全外部結合
完全外部結合は左、右どちらのデータもベースとして、どちらも存在するとこは結合します。
ベン図とサンプルデータの結合した結果はこちらになります。
SQL等ではfull joinといった名称で結合を行うことができます。
今回のように類似のデータで全体感をみたいときは利用することがあります。
交差結合
交差結合は2つのデータをすべて組み合わせる形で結合します。
別のデータ例で説明を進めます。
交差結合するとこちらになります。
データ二つを組み合わせする形で結合されます。
SQL等ではcross joinといった名称で結合を行うことができます。
統合結合
統合結合はこれまでの結合と違い、一つのテーブルにデータをまとめる処理になります。
こちらもサンプルデータの例で見ていただけるとわかりやすいと思います。
2つのデータを一つのテーブルに統合します。
SQL等ではunionといった名称で結合を行うことができます。
上記の例ですと元のサービス名がわからないといった点があるので、あらかじめサービス名のカラムを付与して統合するといった処理はよく行います。
まとめ:データ結合のまとめ
データ結合の種類を紹介しました。
それぞれ特徴があるので、結合後にどういったデータの形にしたいかで最適なものを選んでください。
また、ツールや言語によって使い方が微妙に異なるのでそちらも注意する点の一つですがベースはこちらになるので、データ処理の基礎として一通り覚えてみてください!
データ処理の基本はSQLです。
初心者向けにSQLの書籍をまとめているので、学習を進めたい方は参考にしてください。