平成25年度 春期 午前 問28
データベース
クラス名に関する問題
“中間テスト” 表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示する 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 クラス名,教科名 OR…:まとまりの決め方は指定どおりですが、並べ替えの基準に算出された値そのものを置いています。設問は列の名前の昇順に表示すると述べているので、並び順が食い違います。
- ウGROUP BY クラス名,教科名,学生…:まとまりを決める材料に学生を識別する列まで加えているため、一人ずつに割れてしまいます。粒が細かすぎて、求めたい単位ごとの平均が得られません。
- エGROUP BY クラス名,平均点 OR…:算出して初めて現れる値を、まとまりを決める材料の側に置いています。結果を材料にしようとしている形であり、教科ごとに分けるという指定も抜け落ちています。
この問題の用語
- テスト決めたとおりに動くかを、実際に動かして確かめる作業のこと。何を確かめるかによって移行テスト、システムテストなどと呼び分けます。
出典:平成25年度 春期 基本情報技術者試験 午前 問28(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)