問題本文
“中間テスト”表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中のaに入れるべき字句はどれか。 中間テスト(クラス名,教科名,学生番号,名前,点数) 〔SQL文〕 SELECT クラス名, 教科名, AVG(点数) AS 平均点 FROM 中間テスト [a]
選択肢
- ア.GROUP BY クラス名, 教科名 ORDER BY クラス名, AVG(点数)
- イ.GROUP BY クラス名, 教科名 ORDER BY クラス名, 教科名
- ウ.GROUP BY クラス名, 教科名, 学生番号 ORDER BY クラス名, 教科名, 平均点
- エ.GROUP BY クラス名, 平均点 ORDER BY クラス名, 教科名
正解
イ. GROUP BY クラス名, 教科名 ORDER BY クラス名, 教科名
解説
「クラスごと、教科ごとの平均点」を求めるには GROUP BY クラス名, 教科名 が必要で、「クラス名・教科名の昇順に表示」するには ORDER BY クラス名, 教科名 を指定します。よってイが正解です。
選択肢ごとの解説
- ア.ORDER BY が「クラス名, AVG(点数)」となっており、求められている「教科名」での並び替えになっていません。
- イ.GROUP BY クラス名, 教科名 と ORDER BY クラス名, 教科名 の組合せで、クラス・教科の昇順に平均点を表示でき正解です。
- ウ.GROUP BY に学生番号を含めると学生ごとの集約になってしまい、教科ごとの平均が得られません。
- エ.GROUP BY に平均点を含めるのは意味的に誤りで、また求めた平均点でグループ化することはありません。
基本情報技術者試験 平成25年度 春期 午前 の過去問一覧へ戻る・問28