平成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
- アAVG(年齢) 36
- イAVG(年齢) 40
- ウAVG(年齢) 30 40
- エAVG(年齢) 60 30 40
正解:ウ
解説
“会員”表をグループ列でグループ化すると,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の条件により除外されるため,結果に含まれません。