今日は情報のH29第10問について解説します。
下表は、ある日の東京、大阪、名古屋、九州の各支店の菓子AからEの売上表である。
この表に適用したSQL文とその結果を示したものの組み合わせとして、最も適切なものを下記の解答群から選べ。
〔解答群〕
ア 【SQL文】
SELECT 商品名FROM 菓子売上
WHERE 東京支店 >= 3500 and 大阪支店 >= 3500 or 名古屋支店 >= 3500 and 九州支店 >= 3500
【結果】
菓子C,菓子D,菓子E
イ 【SQL文】
SELECT 商品名FROM 菓子売上
WHERE 東京支店 > 2500 and 大阪支店 > 2500 and 名古屋支店 >= 2500 and 九州支店 > 2500
【結果】
菓子D
ウ 【SQL文】
SELECT 商品名FROM 菓子売上
WHERE 東京支店 > 3500 and (大阪支店 > 3500 or 名古屋支店 > 3500) and 九州支店 > 3500
【結果】
菓子A,菓子B,菓子E
エ 【SQL文】
SELECT 商品名FROM 菓子売上
WHERE 東京支店 + 大阪支店 + 名古屋支店 + 九州支店 >= 14000
【結果】
菓子D
解説
SQL文に関する問題です。それでは早速、各選択肢を見ていきましょう。
選択肢ア:SQL文の条件(WHERE句)は、「東京支店と大阪支店の菓子売上が共に3,500以上、または名古屋支店と九州支店の菓子売上が共に3,500以上の商品」ですので、菓子売上の表から条件に合う商品名を探します。「東京支店と大阪支店の菓子売上が共に3,500以上」に該当する商品は、菓子Dになります。「名古屋支店と九州支店の菓子売上が共に3,500以上」に該当する商品は、菓子C、菓子Eになります。これら商品のor(または)である、菓子C、菓子D、菓子Eが結果となります。
よって、この選択肢は〇です。
選択肢イ:SQL文の条件(WHERE句)は、「東京支店、大阪支店、名古屋支店、九州支店の菓子売上がすべて2,500を超えている商品(名古屋支店だけは2,500を含む)」ですので、菓子売上の表から結果は菓子C、菓子Dになります。
よって、この選択肢は×です。
選択肢ウ:SQL文の条件(WHERE句)は、「東京支店、大阪支店か名古屋支店のいずれか、九州支店の菓子売上が3,500を超えている商品」ですので、菓子売上の表から該当する商品はありません。(結果はnull(=何も表示されない)になります)
よって、この選択肢は×です。
選択肢エ:SQL文の条件(WHERE句)は、「東京支店、大阪支店、名古屋支店、九州支店の菓子売上の合計が14,000以上の商品」ですので、菓子売上の表から結果は菓子B、菓子Dになります。
よって、この選択肢は×です。
以上から、正解は選択肢アとなります。