次のSQL文の実行によって”会員”表から得られる表はどれか。

                     会員
                    ┌────┬──┬────┐
                    │会員番号│年齢│グループ│
SQL文                  ├────┼──┼────┤
 SELECT AVG(年齢)           │ 001  │ 20 │  B  │
   FROM 会員             ├────┼──┼────┤
    GROUP BY グループ        │ 002  │ 30 │  C  │
     HAVING COUNT(*)>1       ├────┼──┼────┤
                    │ 003  │ 60 │  A  │
                    ├────┼──┼────┤
                    │ 004  │ 40 │  C  │
                    ├────┼──┼────┤
                    │ 005  │ 40 │  B  │
                    ├────┼──┼────┤
                    │ 006  │ 50 │  C  │
                    └────┴──┴────┘
  ア        イ       ウ       エ
  ┌─────┐  ┌─────┐ ┌─────┐ ┌─────┐
  │AVG(年齢) │  │AVG(年齢) │ │AVG(年齢) │ │AVG(年齢) │
  ├─────┤  ├─────┤ ├─────┤ ├─────┤
  │  36  │  │  40  │ │  30  │ │  30  │
  └─────┘  └─────┘ ├─────┤ ├─────┤
                   │  40  │ │  40  │
                   └─────┘ ├─────┤
                           │  50  │
                           └─────┘

■キーワード■ GROUP(SQL)

■解答■
  テクニカルエンジニア(データベース)午前平成14年問28
  データベーススペシャリスト午前平成9年問05

 ウ
  ┌─────┐
  │AVG(年齢) │
  ├─────┤
  │  30  │
  ├─────┤
  │  40  │
  └─────┘

> 「GROUP BY グループ HAVING COUNT(*)>1」から、件数が 1 より多いグループ
> のみを対象にする
> グループ B の年齢の平均値は (20 + 40) ÷ 2 = 30
> グループ C の年齢の平均値は (30 + 40 + 50) ÷ 3 = 40

 どうもありがとうございました。

                                                                                                                                              • -