【SQL】EXCEPTでクエリ結果の差分を抽出する

SQL
※本ページにはプロモーションが含まれます
※本ページにはプロモーションが含まれます
スポンサーリンク

2つのクエリ結果の差分を確認したい、、

本記事を見に来ていただいた方は、2つのクエリ結果の差分確認でお悩みではないでしょうか?

この問題を解決できるのが、EXCEPT句になります。
本記事ではEXCEPT句の活用について解説いたします!

EXCEPTについてはじめに

SQLのEXCEPTは、2つのクエリの結果セットを比較し、一方のクエリの結果セットにあってもう一方のクエリの結果セットにはない行を抽出します。

クエリの修正を行い、BeforeとAfterのクエリ結果差分を確認して修正が意図したものになっているかの確認などに使用できます。

本記事ではそちらについて解説いたします。この機会にマスターいただければと思います!

EXCEPT使用方法と注意点

EXCEPTの使用方法

以下は基本構文となります。

SELECT column1, column2 FROM table1EXCEPTSELECT column1, column2 FROM table2

このクエリは、table1から選択された結果セットからtable2から選択された結果セットを差し引いた結果を返します
つまり、table1にあってtable2にはない行が結果として返されます。

EXCEPTを使用する際に注意するポイント

  • 2つのクエリの結果セットは同じ列数と同じデータ型を持っている必要があります。
  • EXCEPTはデータベースシステムによってはサポートされていないことがあるので、データベース製品によっては代替手段を使用する必要があります(例: OracleデータベースではMINUSを使用)。

EXCEPTを使うことで、データベース内での行の差分を効果的に取得できます。

修正後のクエリのSUMがあっているかを一括で確認したいときなどにも有用かと思います!

補足)EXCEPTの代替になるMINUSについて

Oracleデータベースでは、MINUSEXCEPTに相当します。以下はその例です。

SELECT column1, column2 FROM table1 
MINUS 
SELECT column1, column2 FROM table2

EXCEPTと同様に、table1から選択された結果セットからtable2から選択された結果セットを差し引いた結果を返します。

ここまで読んでいただきありがとうございます。
SQLでは、EXCEPTに限らず様々なケースで疑問を感じるかと思います。

このようなケースの場合はどのように記述したらよいか、、
データサイエンティストになるにはどのように効率的に学習していったらよいか?
など自己学習に不安がありましたら、以下のスクールのご活用もご検討ください!

スタアカTech AcademyCode Lesson
データサイエンティストを目指すことに特化したスクールです。現役エンジニアから学べるオンラインに特化したプログラミングスクールです。転職の支援はもちろん、副業に活かせるスキルの習得から、副業の仕事紹介まで寄り添います。「未経験から独学でプロを目指す」というコンセプトのもと、実践的なコーディング学習ができるプログラミング学習サービスです。
★コース例
・データサイエンティスト概要コース
・Python基礎コース
・データ加工集計可視化コース
・統計学概要コース
・SQL基礎コース
 など
コース例
・Pythonコース

・AIコース
・データサイエンスコース
★提供スキル
HTML, CSS, JavaScript(DOM), React, Vue, TypeScript, Java, PHP, Python, SQL

SQL参考文献

SQL学び始めの時はこちらの本を参考にしていました。

DBやテーブルの構造から、よく使う関数などがまとめられています。基礎を身につけたい方におススメかと思います。

SQL文法関連記事

そのほか、SQL関連記事をこちらにまとめておりますのでご参考ください。
Coffee Tech Blog SQL関連記事

もしIT業界への転職でお困りでしたら、下記サービスのご活用をご検討ください!
私は転職の際にGeeklyを活用させて頂き、ご縁を頂くことができました。

Geekly転職ドラフト
IT・WEB・ソーシャルゲーム業界を専門とした転職支援サービスです。ギークリー独占の求人案件も扱っており、大手サービスに劣らないサービス力を誇ります。転職ドラフトは年収UP率94.3% / 平均年収UP額148.4万円と圧倒的な年収UP率を誇るイベント型のエンジニア向け転職サービスです。毎月1回開催され、IT/Web系企業を中心に、厳選された約240社からダイレクトスカウトを受け取ることができます。

EXCEPTについてまとめ

以上が差分を抽出するEXCEPTについてです。

2つのクエリの結果セットを比較し、一方のクエリの結果セットにあってもう一方のクエリの結果セットにはない行を抽出できます。

クエリを修正し、修正前後の結果の差分を比較するときなどに有用になると思います!

参考になれば幸いです☕

コメント

タイトルとURLをコピーしました