修了試験 2015-01-25実施分 基本情報技術者試験 問29
“中間テスト”表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中のaに入れるべき字句はどれか。 中間テスト(クラス名,教科名,学生番号,名前,点数) 〔SQL文〕 SELECT クラス名,教科名,AVG(点数) AS 平均点 FROM 中間テスト a
正答2
解説
正解は2です。 SQLで、グループごとの集計はGROUP BY句、並べ替えはORDER BY句で指定します。 「クラスごと、教科ごと」の平均点なのでクラス名と教科名でグループ化し、表示順もクラス名、教科名の昇順にします。 【選択肢別解説】 1:× GROUP BY句は正しいものの、ORDER BY句が「クラス名,AVG(点数)」になっています。 クラス内では平均点の順に並び、教科名の昇順になりません。 2:○ GROUP BY クラス名,教科名で、クラスと教科の組ごとに平均点を求められます。 ORDER BY クラス名,教科名で、クラス名、教科名の昇順に表示できます。 3:× GROUP BYに学生番号を含めると、学生ごとのグループになります。 各学生の点数がそのまま平均点になり、クラスと教科ごとの平均にはなりません。 4:× 平均点は集計結果なので、GROUP BYのグループ化の項目には使えません。 また教科名がGROUP BYにないので、SELECT句に教科名を書くことができません。 【ポイント】 GROUP BYを使うとき、SELECT句に書けるのはグループ化した列と集計関数だけです。 ORDER BYは省略時は昇順(ASC)で、降順にするにはDESCを付けます。まとめて解く
修了試験 2015-01-25実施分を通しで解く(80問)→