第10問
下表は、ある日の東京、大阪、名古屋、九州の各支店の菓子AからEの売上表で ある。 この表に適用したSQL 文とその結果を示したものの組み合わせとして、最も適 切なものを下記の解答群から選べ。 商品番号 商品名 東京支店 大阪支店 名古屋支店 九州支店 P 0001 菓子A 3,000 4,000 2,000 4,000 P 0002 菓子B 5,000 2,500 6,000 1,500 P 0003 菓子C 2,900 3,000 4,000 4,000 P 0004 菓子D 3,500 4,100 2,900 3,500 P 0005 菓子E 2,000 2,500 3,500 5,000 菓子売上 解答群
- ア ZSQL 文[ SELECT 商品名FROM 菓子売上 WHERE 東京支店>= 3500 and 大阪支店>= 3500 or 名古屋支店>= 3500 and 九州支店>= 3500 Z結果[ 菓子C,菓子D,菓子E
- イ ZSQL 文[ SELECT 商品名FROM 菓子売上 WHERE 東京支店> 2500 and 大阪支店> 2500 and 名古屋支店>= 2500 and 九州支店> 2500 Z結果[ 菓子D DKJC-1F
- ウ ZSQL 文[ SELECT 商品名FROM 菓子売上 WHERE 東京支店> 3500 and (大阪支店> 3500 or 名古屋支店> 3500) and 九州支店> 3500 Z結果[ 菓子A,菓子B,菓子E
- エ ZSQL 文[ SELECT 商品名FROM 菓子売上 WHERE 東京支店袷大阪支店袷名古屋支店袷九州支店>= 14000 Z結果[ 菓子D DKJC-1F
▼ 解答・解説を見る
正解:ア
解答:ア
SQLのWHERE句の条件式を表データに適用し、結果集合を正しく導けるかを問う問題。ANDはORより優先順位が高い点が鍵。
- ア(○):
東京>=3500 and 大阪>=3500 or 名古屋>=3500 and 九州>=3500は(東京>=3500 and 大阪>=3500) or (名古屋>=3500 and 九州>=3500)と解釈される。菓子C(名古屋4000・九州4000)、菓子D(東京3500・大阪4100)、菓子E(名古屋3500・九州5000)が該当し、結果「菓子C,菓子D,菓子E」と一致する。正しい。 - イ(×):全支店>2500(名古屋のみ>=2500)を満たすのは菓子D(3500,4100,2900,3500)に加え菓子Cも該当しうるが、菓子Cの東京2900・大阪3000はともに>2500、名古屋4000>=2500、九州4000>2500で該当する。よって結果は「菓子D」のみとならず誤り。
- ウ(×):
東京>3500 and (大阪>3500 or 名古屋>3500) and 九州>3500を満たす行は存在せず(東京>3500かつ九州>3500を同時に満たす行がない)、結果「菓子A,菓子B,菓子E」と一致しない。 - エ(×):4支店合計>=14000を満たすのは菓子A(13000)不可、菓子D(14000)可、菓子C(13900)不可、菓子E(13000)不可だが、文字化けした条件式(袷)は正しい合計条件として成立せず、結果も整合しない。
よって ア。