データ操作 (全60問中6問目)
No.6
"得点"表から,学生ごとに全科目の点数の平均を算出し,平均が80点以上の学生の学生番号とその平均点を求める。aに入れる適切な字句はどれか。ここで,実線の下線は主キーを表す。
得点(学生番号,科目,点数)
〔SQL文〕
SELECT 学生番号,AVG(点数)
FROM 得点
GROUP BY a
得点(学生番号,科目,点数)
〔SQL文〕
SELECT 学生番号,AVG(点数)
FROM 得点
GROUP BY a
出典:令和元年秋期 問26
- 科目 HAVING AVG(点数) >= 80
- 科目 WHERE 点数 >= 80
- 学生番号 HAVING AVG(点数) >= 80
- 学生番号 WHERE 点数 >= 80
分類
テクノロジ系 » データベース » データ操作
正解
ウ
解説
GROUP BY句でグループ化した後にグループを絞るにはHAVING句を使用します。本問では学生ごとに全科目の平均を算出したいので、「GROUP BY 学生番号」でレコードを学生番号ごとにグルーピングした後、点数の平均が80以上の学生を「HAVING AVG(点数) >= 80」で選択することになります。
「イ」と「エ」では、GROUP BY句の後にWHERE句を記述しているので構文エラーとなります。各句の記述順は、
したがって「ウ」が正解です。
「イ」と「エ」では、GROUP BY句の後にWHERE句を記述しているので構文エラーとなります。各句の記述順は、
- WHERE句 … 条件を指定してレコードを絞る
- GROUP BY句 … 指定した属性でレコードをグループ化する
- HAVING句 … 条件を指定してグループを絞る
- ORDER BY句 … レコードの表示順を指定する
したがって「ウ」が正解です。