問題

24
SQL

UNION演算子を使って和集合を求めよう

類似した構造のテーブルが複数あった場合に、その結果を組み合わせて表示したい場合は、集合演算子というものを使用します。 集合演算子にはUNION、EXCEPT、INTERSECTなどがあります。

SQLの問題に挑戦しよう!

問題

UNION演算子を使って和集合を求めよう

はじめに指定のコードを実行して「家計簿_過去分」テーブルを作成してください。

UNION演算子を使用して「家計簿」テーブルと「家計簿_過去分」テーブルを組み合わせて
費目の食費のみを表示してください。
重複するデータは1行にまとめずに全て表示してください。

期待する画面を参考に作成してみましょう。

あらかじめエディタに書くコード

                    USE ninjacode;
CREATE TABLE 家計簿_過去分 (日付 INT, 費目 VARCHAR(20), 収入 INT, 支出 INT, 詳細 VARCHAR(255));
INSERT INTO 家計簿_過去分
  (日付, 費目, 収入, 支出, 詳細) 
VALUES
  (20221105, '家賃', 0, 80000, '9月の家賃'),
  (20221105, '光熱費', 0, 15000, '9月の電気代'),
  (20221108, '食費', 0, 1000, 'ランチ'),
  (20221115, '食費', 0, 1400, 'ランチ'),
  (20221120, '交際費', 0, 25000, '友人と温泉旅行'),
  (20221122, '娯楽費', 0, 1400, '書籍購入'),
  (20221125, '給料', 250000, 0, '10月分');
SELECT * FROM 家計簿_過去分;
¥SQL¥
                

期待する画面

解答の画像

解答と解説(UNION演算子を使って和集合を求めよう)

解説

LINE登録して解答を見る

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

UNIONを使用する際の構文は以下のようになります。
SELECT 列名 FROM テーブル名①
UNION
SELECT 列名 FROM テーブル名②

今回の問題では、両テーブルの費目'食費'を合わせて表示します。
UNION演算子を使用することで組み合わせて表示できます。
重複するデータをまとめず全て表示させる場合は
UNION演算子に続けて'ALL'を記述します。

補足

集合演算は、複数の検索結果を1つの結果表として返してくれますが、それぞれの検索結果の列数が異なったりデータ型がバラバラであると1つの結果表にまとめることができません。組み合わせる際は列数・データ型を一致させておく必要があります。

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

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