DBデータベーススペシャリスト試験 午前Ⅱ
平成26年度春期 データベーススペシャリスト 午前Ⅱ 問16
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題

選択肢
- アS001:150,S003:150,S006:500
- イS001:150,S003:150,S007:50
- ウS004:400,S005:400,S006:500
- エS004:400,S005:400,S007:50
解き方のヒントを見る
抽出条件の適用範囲を確認する
SQLの抽出結果を考えるときは、条件が各行のどの値を対象にし、複数条件がどの関係で評価されるかを整理して、表示対象になる行の範囲を丁寧に確認しましょう。
この問題で問われていること
選択肢を比べる前に、抽出条件を一つずつ分解し、各行について条件の対象列と判定の組み合わせを表にして、条件全体が要求する範囲だけを確認し、その対応関係を最後に確認する。
視点
抽出条件の検討では、列ごとの値、条件同士の結び付き、評価対象となる行の単位を分けて整理します。途中で得た印象だけで結果を決めず、各条件を同じ基準で照合し、結果集合の範囲が一貫しているかを確認する視点が役立ちます。
確認ポイント
- 各条件が参照する列と値の対応を整理する
- 条件同士の組み合わせがどの範囲に影響するか確認する
- 各行を同じ基準で照合し、結果の範囲を見直す
正解と解説を見る
正解
ウ
解説
相関サブクエリは、各商品Aについて、Aより総販売数が多い商品Bの件数を数えます。その件数が3件未満となる商品を抽出すると、S004、S005、S006の3件となるため、正答はウです。
理由
WHERE句は、Aの総販売数よりBの総販売数が大きい行をCOUNT(*)で数え、その件数が3件未満かを判定します。S004は400個より多い商品がS006の500個だけで1件、S005も1件、S006は該当商品がなく0件です。したがって、これら3商品が抽出されます。
比較
S001とS003は総販売数が150個で、250個のS002、400個のS004、400個のS005、500個のS006の4件が上回ります。S002は400個のS004・S005と500個のS006の3件で、3件未満ではありません。S007は50個なので他の6件が上回り、いずれも抽出条件を満たしません。
選択肢ア
これは不正解だよ。S001とS003は総販売数が150個で、これらを上回る商品はS002の250個、S004とS005の400個、S006の500個の4件です。COUNT(*)は3件ではなく4件となるため、3件未満というWHERE条件を満たさず、アの2商品は結果に残りません。
選択肢イ
これは不正解だよ。S001とS003は150個より多い商品が4件あるため抽出対象外です。また、S007は50個より多い商品が6件あり、同じく3件未満の条件を満たしません。イは、比較対象の件数条件に合わない商品を並べているため、SQLの結果とは一致しません。
選択肢ウ(正解)
これは正解だよ。S004の400個を上回るのはS006の500個だけで1件、S005も1件、S006の500個を上回る商品は0件です。いずれもCOUNT(*)が3件未満となり、S004:400、S005:400、S006:500が抽出されるため、ウと一致します。
選択肢エ
これは不正解だよ。S004とS005は総販売数400個で、上回る商品がS006の500個だけのため抽出されます。しかしS007は50個で、S001からS006までの6件が上回るので抽出されません。エはS007を含め、抽出されるべきS006を外している点が条件と異なります。
学習のポイント
相関サブクエリの行ごとのCOUNTと、不等号条件の適用方法を学習できます。
出典:独立行政法人 情報処理推進機構(IPA)平成26年度春期 データベーススペシャリスト試験 午前Ⅱ 問16(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針