平成23年特別試験午前問題 午前Ⅱ 問6

午前Ⅱ 問6解説へ
次のSQL文によって"会員"表から新たに得られる表はどれか。
06.gif

  • 06a.gif
  • 06i.gif
  • 06u.gif
  • 06e.gif
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データ操作
SQL文のGROUP BY句は指定された属性をグループ化する命令、HAVING句はGROUP BY句でまとめたグループに対してWHERE句のように抽出条件を記述し、指定した条件を満たすグループのみを取り出す句です。

問題のSQL文を分解すると、以下のように解釈できます。
FROM 会員
GROUP BY グル―プ
会員表をグループ列を基準にグループ化する。
HAVING COUNT(*) > 1
含まれる行数が1より大きいグループを取り出す。
SELECT AVG(年齢)
グループごとに年齢の平均(AVG)を集計した列を表示する。

まず"グループ"列を基準に会員表をグループ化します。
06_1.gif
その中で行数が1より大きいグループを取り出します。Aのグループは1行しかないのでHAVING句で抽出対象から除外されます。
06_2.gif
グループごとに年齢の平均を計算し、AVG(年齢)行を結果として表示します。グループがBである会員は2人で、それぞれ年齢が20,40なので平均は30歳、グループがCである会員は3人で、それぞれ年齢が30,40,50なので平均は40歳になります。
06u.gif

この問題の出題歴


Pagetop