MySQL GROUP BY 句によるグループ化

スポンサーリンク

person テーブルと gender テーブルのデータを確認します。

SELECT * FROM person;

+—-+——-+——+——–+———+
| id | name  | age  | gender | dept_no |
+—-+——-+——+——–+———+
|  1 | kai   |   27 |      1 |       1 |
|  2 | gerda |   25 |      2 |       2 |
|  3 | ragi  |   33 |      1 |       1 |
+—-+——-+——+——–+———+

SELECT * FROM gender;

+—-+——-+
| id | label |
+—-+——-+
|  0 | 不明  |
|  1 | 男性  |
|  2 | 女性  |
+—-+——-+

それでは GROUP BY 句を利用して person テーブルの性別ごとにグループ化を行います。グループ化を行い、更に COUNT 関数を利用してグループごとのレコード数を集計します。

SELECT g.label AS '性別',  COUNT(p.name) AS '人数' FROM person AS p, gender AS g 
WHERE g.id = p.gender GROUP BY p.gender;

+——+——+
| 性別 | 人数 |
+——+——+
| 男性 |    2 |
| 女性 |    1 |
+——+——+

※ GROUP BY 句を利用する際には、「グループ化を行う列」「集計関数(ここでは COUNT 関数)の対象列」のみ選択(SELECT)の対象とすることができます。

コメント

タイトルとURLをコピーしました