基本情報技術者講座
★ 猫本 6-07 SQL(並べ替え・グループ化)(その1) ★
基本情報技術者 令和元年度秋期 問26
"得点"表から,学生ごとに全科目の点数の平均を算出し,平均が80点以上の学生の学生番号とその平均点を求める。aに入れる適切な字句はどれか。ここで,実線の下線は主キーを表す。
得点(学生番号,科目,点数)
〔SQL文〕
SELECT 学生番号,AVG(点数)
FROM 得点
GROUP BY 【 a 】
ア | 科目 HAVING AVG(点数) >= 80 |
イ | 科目 WHERE 点数 >= 80 |
ウ | 学生番号 HAVING AVG(点数) >= 80 |
エ | GROUP BY 学生番号 WHERE 点数 >= 80 |
解説
GROUP BY(グループ化)に対する条件 → HAVING
学生ごとに~ → 学生ごとにグループ化して,条件を付ける。
よって,ウである。
SELECT 学生番号,AVG(点数)
FROM 得点
学生番号 HAVING AVG(点数) >= 80
解答
ウ
基本情報技術者 平成31年春期 問27
"中間テスト"表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示する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(グループ化)に対する条件 → HAVING
クラスごと,教科ごとに~ → クラスごと,教科ごとにグループ化して,条件を付ける。
ORDER BY → 並び替え
よって,イである。
SELECT クラス名,教科名,AVG(点数) AS 平均点
FROM 中間テスト
GROUP BY クラス名,教科名 ORDER BY クラス名,教科名
(参考)
AS 項目名:属性(列)に新たな項目名を付ける。
解答
イ