修了試験 2016-07-24実施分 基本情報技術者試験 問29
“中間テスト”表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中のaに入れるべき字句はどれか。 中間テスト(クラス名,教科名,学生番号,名前,点数) 〔SQL文〕 SELECT クラス名,教科名,AVG(点数) AS 平均点 FROM 中間テスト [ a ]
正答2
解説
正解は2です。 SQLで集計とグループ化、並べ替えを行う句の書き方を問う問題です。 クラスごと・教科ごとに平均点を求めるには、GROUP BY句にクラス名と教科名を指定します。 表示順はクラス名、教科名の昇順なので、ORDER BY句にもクラス名と教科名を指定します。 【選択肢別解説】 1:× GROUP BY句は正しいですが、ORDER BY句の第2キーがAVG(点数)になっています。 これでは教科名ではなく平均点の順に並ぶので、条件に合いません。 2:○ クラス名と教科名でグループ化して平均点を求め、クラス名、教科名の順に並べます。 ORDER BY句は指定がなければ昇順(ASC)です。 3:× GROUP BY句に学生番号も含めると、学生ごとの細かいグループになります。 平均点が学生一人の点数そのものになり、クラス・教科ごとの平均にはなりません。 4:× GROUP BY句に平均点を指定することはできません。 平均点はグループ化の結果として求める集計値で、教科名でもまとめていないのでSELECT句の教科名とも矛盾します。 【ポイント】 GROUP BYを使うとき、SELECT句に書ける列は、GROUP BYに指定した列と集計関数だけです。 並べ替えの既定は昇順で、降順にする場合はDESCを指定します。まとめて解く
修了試験 2016-07-24実施分を通しで解く(80問)→