修了試験 2017-12-10実施分 基本情報技術者試験 問29
“中間テスト”表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中のaに入れるべき字句はどれか。 中間テスト(クラス名,教科名,学生番号,名前,点数) 〔SQL文〕 SELECT クラス名,教科名,AVG(点数) AS 平均点 FROM 中間テスト a
正答2
解説
正解は2です。 クラスごと、教科ごとの平均点を求めるには、GROUP BY句でクラス名と教科名の2列を指定してグループ化します。 そのうえで、表示順をクラス名、教科名の昇順にするために、ORDER BY句にもクラス名と教科名を指定します。 ORDER BY句は、指定がなければ昇順(ASC)で並べます。 【選択肢別解説】 1:× GROUP BY句は正しいものの、ORDER BY句がクラス名と平均点(AVG(点数))になっています。 教科名の昇順に並ばないので、要件に合いません。 2:○ クラス名と教科名でグループ化し、同じ2列の昇順で並べています。 クラスごと・教科ごとの平均点を指定どおりの順に表示できます。 3:× 学生番号もグループ化の列に含めると、学生1人ごとのグループになります。 クラス・教科ごとの平均にならず、並び順にも平均点が入っています。 4:× 平均点は集計した結果なので、グループ化の列には指定できません。 教科名がGROUP BY句にないので、SELECT句の教科名も表示できません。 【ポイント】 GROUP BY句を使うとき、SELECT句に書ける列は、グループ化の列と集合関数の結果だけです。 「〜ごと」はGROUP BY、「〜の順に」はORDER BYと対応させて読み取ります。まとめて解く
修了試験 2017-12-10実施分を通しで解く(80問)→