2017年3月9日木曜日

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)の対象とすることができます。

0 件のコメント:

コメントを投稿