基本情報技術者試験 過去問解説
SQLとは?基本情報技術者試験 平成25年度 春期 午前 問28を解説
基本情報技術者試験 平成25年度 春期 午前 問28は、SQLに関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。
問題文
“中間テスト”表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中のaに入れるべき字句はどれか。 中間テスト(クラス名,教科名,学生番号,名前,点数) 〔SQL文〕 SELECT クラス名, 教科名, AVG(点数) AS 平均点 FROM 中間テスト [a]
この問題の出題ポイント
- SQLの定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
- 関連タグ: SQL、ビジネスモデル、メモリ。
選択肢
- ア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 に平均点を含めるのは意味的に誤りで、また求めた平均点でグループ化することはありません。
解き方の整理
SQLの問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。
関連問題
前後の問題
平成25年度 春期 午前 の関連する問題
復習を続ける
間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。