令和5年免除試験問題 問21

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
国語と数学の試験を実施し,2教科の成績は氏名とともに"得点"表に記録されている。1教科は平均点以上で,残りの1教科は平均点未満の生徒氏名を"得点"表から抽出するSQL文はどれか。ここで,条件文Aと条件文Bには,それぞれ次の条件が与えられているものとする。

〔条件文〕
A 国語の点数が国語の平均点以上
B 数学の点数が数学の平均点以上

  • SELECT 生徒氏名 FROM 得点
     WHERE (A AND B) AND NOT (A AND B)
  • SELECT 生徒氏名 FROM 得点
     WHERE (A AND B) AND NOT (A OR B)
  • SELECT 生徒氏名 FROM 得点
     WHERE (A OR B) AND NOT (A AND B)
  • SELECT 生徒氏名 FROM 得点
     WHERE (A OR B) AND NOT (A OR B)
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データ操作
解説
選択肢を見ると異なっているのはWHERE句以降の条件式だけなので、この部分が正しい結果を返すかを検証していきます。ANDは論理積、ORは論理和を表します。

表からの抽出条件である"1教科は平均点以上で,残りの1教科は平均点未満"をベン図で表現すると次のようになります。少なくとも1教科が平均点以上である部分集合から、両方が平均点以上である部分集合を除いた部分となります。
21.png
それぞれの条件式も同様にベン図で表現してみると、「ウ」が一致することがわかります。
  • 21a.png
  • 21i.png
  • 21u.png
  • 21e.png

出典


Pagetop