平成17年春期試験問題 午前問60
問60解説へ
国語と数学の試験を実施し,2教科の成績は氏名とともに"得点"表に記録されている。1教科は平均点以上で,残りの1教科は平均点未満の生徒氏名を"得点"表から抽出するSQL文はどれか。ここで,条件文Aと条件文Bには,それぞれ次の条件が与えられているものとする。
〔条件文〕
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教科が平均点以上である部分集合から、両方が平均点以上である部分集合を除いた部分となります。それぞれの条件式も同様にベン図で表現してみると、「ウ」が一致することがわかります。
表からの抽出条件である"1教科は平均点以上で,残りの1教科は平均点未満"をベン図で表現すると次のようになります。少なくとも1教科が平均点以上である部分集合から、両方が平均点以上である部分集合を除いた部分となります。それぞれの条件式も同様にベン図で表現してみると、「ウ」が一致することがわかります。
広告