GROUP BY句
GROUP BY句は、グループごとに合計値や最大値を求めるもの。
グループごとに、次のような集合関数を用いる。
| 集合関数 | 意味 |
|---|---|
| SUM(フィールド名) | フィールドの値の合計を求める。 |
| AVG(フィールド名) | フィールドの値の平均を求める。 |
| MAX(フィールド名) | フィールドの値の最大値を求める。 |
| MIN(フィールド名) | フィールドの値の最小値を求める。 |
| COUNT(フィールド名) | フィールドの値のNULLではないレコードの総数を求める。 |
| COUNT(*) | レコードの総数を求める。 |
例えば、次のような社員表があるとする。
社員表
| 社員番号 | 所属部署 | 氏名 | 年齢 |
|---|---|---|---|
| 0000001 | 営業部 | 田中奈津美 | 28 |
| 0000002 | 開発部 | 山田礼子 | 30 |
| 0000003 | 開発部 | 安藤徹 | 25 |
| 0000004 | 営業部 | 山下幸一 | 37 |
| 0000005 | 営業部 | 長谷川薫 | 24 |
| 0000006 | 開発部 | 遠藤渉 | 29 |
社員表の所属部署をグループ化して、部署ごとの所属人数と平均年齢を集計する場合、次のように記述する。
SELECT 所属部署,COUNT(*),AVG(年齢)
FROM 社員表
GROUP BY 所属部署;部署ごとの所属人数と平均年齢
| 所属部署 | COUNT(*) | AVG(年齢) |
|---|---|---|
| 営業部 | 3 | 29.7 |
| 開発部 | 3 | 28 |