MINUSでの結果差分抽出についてはじめに
SQLのMINUS関数は、2つのSELECT文の結果から、最初のSELECT文の結果にだけ含まれている行を抽出するための演算子です。
MINUSを使うと、2つのクエリの結果から一方にのみ存在する行を取り出すことができます。本記事では、こちらについて解説いたします。
MINUSの使用方法
具体的な使い方を説明いたします。
例えば、以下のような2つのテーブルがあるとします。
Table1:
ID | Name
1 | John
2 | Alice
3 | Bob
Table2:
ID | Name
1 | John
3 | Bob
5 | Emily
そして、以下のようなクエリを実行すると、
SELECT ID, Name FROM Table1
MINUS
SELECT ID, Name FROM Table2
結果は、以下のようになります。
ID | Name
2 | Alice
この結果は、Table1には存在するがTable2には存在しない行が抽出されています。
つまり、JohnとBobは両方のテーブルに存在するため、結果から除外されます。
「プログラムの環境構築からわからない、、」「データサイエンティストになるには?」など自己学習に不安がありましたら、以下のスクールのご活用をご検討ください!
同様の機能を持つEXCEPTについて
SQLにおいて、MINUSとEXCEPTは同様の機能を持ちますが、データベース管理システムによっては異なる構文や動作をすることがあります。一般的な違いは以下の通りです。
- 名前と構文:
- MINUSはOracleやPL/SQLなどで使用される演算子です。
- EXCEPTはSQL ServerやPostgreSQLなどで使用される演算子です。
- 動作:
- MINUSは2つのSELECT文の結果から、最初のSELECT文の結果にだけ含まれている行を抽出します。
- EXCEPTも同様に、2つのクエリの結果から最初のクエリの結果にだけ含まれる行を抽出します。
- NULLの取り扱い:
- MINUSはデフォルトでNULLを無視します。つまり、結果に含まれている行は最初のクエリの結果にのみ存在する行のみです。
- EXCEPTはNULLを区別します。つまり、最初のクエリの結果には存在しないが、2番目のクエリの結果に存在するNULL値を持つ行も抽出されます。
SQL参考文献
SQL学び始めの時はこちらの本を参考にしていました。
DBやテーブルの構造から、よく使う関数などがまとめられています。基礎を身につけたい方におススメかと思います。
MINUSでの結果差分抽出まとめ
以上がMINUSについての解説となります。
1つめのクエリ結果にあり、MINUS以降の2つめのクエリ結果に存在しないレコードを返すことができます。ケースに応じてご活用ください!
SQL文法関連記事
そのほか、SQL関連記事をこちらにまとめておりますのでご参考ください。
> Coffee Tech Blog SQL関連記事
もしIT業界への転職でお困りでしたら、下記サービスのご活用をご検討ください!
私は転職の際にGeeklyを活用させて頂き、ご縁を頂くことができました。
参考になれば幸いです☕
コメント