問題

26
SQL

INTERSECTで共通データを取得しよう

SQLで「両方の検索結果に含まれるデータだけを取得したい」と思ったことはありませんか?

そのような場合に活用できるのがINTERSECTです。INTERSECTを使うと、複数のSELECT文に共通するデータだけを抽出できます。この問題では、SQL INTERSECTの基本的な使い方と考え方を学びながら、集合演算の仕組みを理解していきましょう。

【SQL】INTERSECTとは

INTERSECTの役割

SQL INTERSECTは、複数のSELECT文の結果から共通するデータだけを取得するための集合演算子です。例えば、2つのテーブルに存在する共通の顧客情報や商品情報を抽出したい場合に利用されます。データ分析やレポート作成などでも活用されるため、SQL学習において覚えておきたい重要な機能のひとつです。

【SQL】INTERSECTが使われる場面

SQL INTERSECTは、異なる検索結果に共通して存在するデータを確認したい場面で活用されます。例えば、複数の会員リストに登録されているユーザーの抽出や、異なる期間のデータに共通して含まれる情報の確認などに利用できます。共通部分だけを効率よく取得できるため、データの比較や分析を行う際に役立ちます。

【初級】SQL INTERSECTで共通データを取得しよう

問題

INTERSECTで共通データを取得しよう

SQL INTERSECTを使って、「家計簿」テーブルと「家計簿_過去分」テーブルの両方に存在する費目・収入・支出データを取得してみましょう。

複数のSELECT文から共通するデータだけを抽出できるように、期待する画面を参考にSQLを記述してください。

期待する画面

解答の画像

解答と解説(INTERSECTで共通データを取得しよう)

解説

LINE登録して解答を見る

※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます

SQL INTERSECTは、複数のSELECT文の検索結果から共通して存在するデータだけを取得する集合演算子です。今回の問題では、「家計簿」テーブルと「家計簿_過去分」テーブルの両方に存在する費目・収入・支出データを抽出するためにINTERSECTを使用しています。

基本構文は以下のように記述します。

SELECT 列名 FROM テーブル名①
INTERSECT
SELECT 列名 FROM テーブル名②

INTERSECTを実行すると、2つのSELECT文の結果を比較し、両方に存在する行だけが取得されます。UNIONが両方の結果をまとめるのに対し、INTERSECTは共通部分のみを取得する点が大きな違いです。

また、INTERSECTを利用する際は、比較するSELECT文同士で取得する列数を揃える必要があります。さらに、対応する列のデータ型も一致していなければエラーになるため注意しましょう。これは初心者がつまずきやすいポイントのひとつです。

実務では、複数の会員リストに登録されているユーザーを抽出したり、異なる期間のデータに共通して存在する情報を確認したりする場面で活用されます。SQL INTERSECTの考え方を理解すると、UNIONやEXCEPTなど他の集合演算子も理解しやすくなり、データ分析や業務システム開発で役立つSQLスキルを身につけることができます。

補足

SQL INTERSECTは、複数のSELECT結果から共通データを取得する集合演算子です。SQLには他にもUNION(結合)やEXCEPT(差集合)があり、それぞれ取得できるデータが異なります。これらの集合演算子を使い分けられるようになると、複雑なデータ抽出や分析を効率よく行えるようになります。特にINTERSECTは、複数のリストに共通するデータを確認したい場面で役立つため、実務でも知っておきたい知識のひとつです。

【関連問題】
・集合演算子関連:UNION演算子で和集合を求めよう
・重複除外関連:DISTINCTで重複データを除外しよう
・問題集一覧:SQL問題集トップ
・SQLの基礎から学びたい方:SQL入門講座

【SQL】INTERSECTのポイント

【SQL】INTERSECTとUNIONの違い

SQL INTERSECTとUNIONはどちらも集合演算子ですが、取得できるデータが異なります。UNIONは複数のSELECT結果を結合して表示するのに対し、INTERSECTは両方の検索結果に共通して存在するデータだけを取得します。例えば、会員リストAと会員リストBを比較した場合、UNIONは両方の会員をまとめて取得し、INTERSECTは両方に登録されている会員だけを取得します。集合演算を理解する際は、「結合するのか」「共通部分を取得するのか」を意識すると使い分けしやすくなります。

【SQL】INTERSECTを実務で活用する場面

SQL INTERSECTは、複数のデータに共通して存在する情報を確認したい場面で活用されます。例えば、複数の顧客リストに登録されているユーザーの抽出や、異なる期間の売上データに共通する商品を調査する際などに役立ちます。SQLの集合演算は初心者がつまずきやすい分野ですが、理解できるとデータ分析やシステム開発で活用できる場面が大きく広がります。
独学でSQLの理解に不安がある場合は、実務経験者へ相談しながら学習を進めるのもおすすめです。

さらにスキルアップしたい方は公式LINEから「SQL」と送信すると動画が見れます。

LINE登録して動画を視聴する
あなたに合った学習プランは?LINE適正コース診断はこちら