問題
過去3年分の記録を保存している"試験結果"表から,2018年度の平均点数が600点以上となったクラスのクラス名と平均点数の一覧を取得するSQL文はどれか。ここで,実線の下線は主キーを表す。 試験結果(学生番号,受験年月日,点数,クラス名)
選択肢
- 1SELECT クラス名, AVG(点数) FROM 試験結果 GROUP BY クラス名 HAVING AVG(点数) >= 600
- 2SELECT クラス名, AVG(点数) FROM 試験結果 WHERE 受験年月日 BETWEEN '2018-04-01' AND '2019-03-31' GROUP BY クラス名 HAVING AVG(点数) >= 600
- 3SELECT クラス名, AVG(点数) FROM 試験結果 WHERE 受験年月日 BETWEEN '2018-04-01' AND '2019-03-31' GROUP BY クラス名 HAVING 点数 >= 600
- 4SELECT クラス名, AVG(点数) FROM 試験結果 WHERE 点数 >= 600 GROUP BY クラス名 HAVING (MAX(受験年月日)) BETWEEN '2018-04-01' AND '2019-03-31'
正解
2. SELECT クラス名, AVG(点数) FROM 試験結果 WHERE 受験年月日 BETWEEN '2018-04-01' AND '2019-03-31' GROUP BY クラス名 HAVING AVG(点数) >= 600
詳しい解説を見る解説を閉じる
解説
2018年度(2018-04-01〜2019-03-31)の受験記録だけをWHERE句で絞り込み,クラス名でグループ化し,グループごとの平均点AVG(点数)が600以上のものをHAVING句で抽出する必要がある。イはこの条件を正しく表現している。集約値の条件はHAVINGで,かつAVG(点数)で判定しなければならず,点数単体で比較するウや絞込み順が誤ったア・エは適切でない。(出典: 平成31年度 春期 応用情報技術者試験 午前 問28)
一問一答
全400問を繰り返し学習