学生番号でグループ化し、集約後の平均をHAVING句で絞る必要がある

正解は ウ です。 学生番号でグループ化し、集約後の平均をHAVING句で絞る必要があるためウです。 学生ごとの平均を求めるので、グループ化の列は学生番号です。平均値は集約後に確定するため、80点以上という条件はWHEREではなくHAVINGで指定します。 学生単位で集約するため GROUP BY 学生番号 とする。 集約関数 AVG(点数) の結果を絞るため HAVING AVG(点数) >= 80 とする。 両方を満たすウが正しい。 句 実行される順 条件に使えるもの WHERE グループ化の前(1行ずつ) 各行の値(点数 >= 80 など) GROUP BY WHERE の後 −(学生番号ごとにまとめる) HAVING グループ化の後 集約関数の結果(AVG(点数) >= 80 など) WHERE 点数 >= 80(エ)では、80点未満の科目を除いてから平均することになり、「全科目の平均が80点以上」という条件になりません。

"得点"表から,学生ごとに全科目の点数の平均を算出し,平均が80点以上の学生の学生番号とその平均点を求める。aに入れる適切な字句はどれか。ここで,実線の下線は主キーを表す。

得点(学生番号,科目,点数)

〔SQL文〕

sql
SELECT 学生番号,AVG(点数)
FROM 得点
GROUP BY  a 
出典令和元年度 秋期 基本情報技術者試験 午前 問26
ア
科目 HAVING AVG(点数) >= 80
イ
科目 WHERE 点数 >= 80
ウ
学生番号 HAVING AVG(点数) >= 80
エ
学生番号 WHERE 点数 >= 80