過去問解きまくり研究所 ホーム

令和3年度 秋期 午前Ⅱ 問6

データ操作

SQL文を実行した結果

“商品”表と“当月商品仕入合計”表に対して,SQL 文を実行した結果はどれか。

商品

商品コード仕入先コード
S001K01
S002K01
S003K02
S004K02
S005K03
S006K04

当月商品仕入合計

仕入先コード仕入合計金額
K01150,000
K03100,000
K05250,000
〔SQL 文〕
  (SELECT 仕入先コード FROM 商品)
     EXCEPT
  (SELECT 仕入先コード FROM 当月商品仕入合計)

選択肢は原典では列名“仕入先コード”の結果表。各肢は結果の行を上から順に並べた。

答えと解説を見る

✓ これが正解エ仕入先コード:K02,K04

解説

EXCEPT は差を取り重複も除くので、K02 と K04 の2行が残ります。

EXCEPT は、左の問合せ結果から、右の問合せ結果に含まれる行を取り除く集合演算で、ALL を付けない場合は結果から重複行も除かれます。左の問合せは商品表の仕入先コードを全行取り出すので、K01、K01、K02、K02、K03、K04 の6行です。右は当月商品仕入合計表の K01、K03、K05 です。左から右に含まれる K01 と K03 を除くと K02、K02、K04 が残り、重複を除くと K02 と K04 の2行になります。右にだけある K05 は結果に影響しません。この2行が並ぶ選択肢が正解です。EXCEPT は差を取る演算で、ALL が無ければ重複が消える、と押さえておけば、残る行と行数を確実に絞れます。

ほかの選択肢はなぜ違うのか

出典:令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問6

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)