IPA過去問ドリル

平成23年度 特別 データベーススペシャリスト試験 午前Ⅱ 問6

テクノロジ/データベース

次の SQL 文によって“会員”表から新たに得られる表はどれか。 〔SQL 文〕 SELECT AVG(年齢) FROM 会員 GROUP BY グループ HAVING COUNT(*) > 1 会員 会員番号,年齢,グループ 001,20,B 002,30,C 003,60,A 004,40,C 005,40,B 006,50,C (注:本サイトでは原問題の表を文字表記に変換しています)

出典:平成23年度 特別 データベーススペシャリスト試験 午前Ⅱ 問6

正解:ウ

解説

“会員”表をグループ列でグループ化すると,Aグループは1件(年齢60),Bグループは2件(年齢20と40),Cグループは3件(年齢30,40,50)となります。HAVING COUNT(*) > 1により,件数が1件のAグループは除外され,Bグループの平均年齢30とCグループの平均年齢40の2行から成る表が得られます。

選択肢ごとの解説

  • 誤り。単一の値36は,この集計結果には現れない値です。
  • 誤り。40はCグループの平均年齢の一つですが,Bグループの平均年齢30が欠けており,1行だけでは正しい結果になりません。
  • 正しい。件数が1件のAグループを除いたBグループ(平均30)とCグループ(平均40)の2行から成る表が,SQL文の実行結果です。
  • 誤り。60はAグループの平均年齢ですが,AグループはHAVING COUNT(*) > 1の条件により除外されるため,結果に含まれません。
データベーススペシャリストの過去問を演習モードで解く