“得点”表から、学生ごとに全科目の点数の平均を算出し、平均が80点以上の学生の学生番号とその平均点を求める。aに入れる適切な字句はどれか。ここで、実線の下線は主キーを表す。 得点(学生番号, 科目, 点数)※学生番号と科目が主キー(実線の下線) [SQL文] SELECT 学生番号, AVG(点数) FROM 得点 GROUP BY [ a ]
集約結果での絞り込みはWHEREでなくHAVINGを使う
選択肢
- ア科目 HAVING AVG(点数) >= 80
- イ科目 WHERE 点数 >= 80
- ウ学生番号 HAVING AVG(点数) >= 80
- エ学生番号 WHERE 点数 >= 80
正解と解説
正解:ウ 学生番号 HAVING AVG(点数) >= 80
学生ごとの平均を出すには、集計の単位となる学生番号でGROUP BYする必要がある。さらに「平均が80点以上」という条件は集約関数の結果に対する絞り込みなので、行単位で働くWHEREではなくグループ単位で働くHAVINGを使う。よって学生番号でグループ化し、HAVINGで平均点を判定する形になる。
選択肢ごとの解説
- ア科目でグループ化すると科目ごとの平均になり、学生別にならない。
- イグループ化の単位も条件の書き方も誤っている。
- ウ正解。学生番号でグループ化し、HAVINGで平均点を判定する。
- エWHEREは個々の行の点数を見るため、平均での絞り込みにならない。
同じ分野の他の問題
- 次のSQL文によって定義され,値が格納されている"商品"表に対して,制約違反で実行エラーとなるSQL文はどれか。 〔SQ…2026年度 公開問題 科目A 問7
- “商品”表に対するSQL文と同じ結果が得られるSELECT文はどれか。 〔SQL文〕 SELECT * FROM 商品 …2025年度 公開問題 科目A 問6
- "学生"表と"学部"表に対して次のSQL文を実行した結果として、正しいものはどれか。 〔SQL文〕 SELECT 氏名 …2019年度 春期 午前 問29
- "中間テスト"表からクラスごと、教科ごとの平均点を求め、クラス名、教科名の昇順に表示するSQL文中のaに入れる字句はどれ…2019年度 春期 午前 問27
- 次の埋込みSQLを用いたプログラムの一部において、Xは何を表す名前か。 EXEC SQL OPEN X; EXEC SQ…2018年度 春期 午前 問28
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。