【MySQL】GROUP BY - データのグループ化

【MySQL】GROUP BY - データのグループ化

MySQLのGROUP BYについて解説します。

検証環境

GROUP BY

GROUP BY句は“SELECT文の取得データを任意カラムでグループ化する句”です。

任意カラムが同じ値のレコードをグループ化し、関数を使って合計値などを表データとしてまとめることができます。

基本構文

GROUP BY カラム

カラムの部分にグループ化するカラムを記述します。

サンプル

mysql> SELECT * FROM items;
+----+-----------+-------+-------+
| id | name      | price | stock |
+----+-----------+-------+-------+
|  1 | Apple     |   200 |    10 |
|  2 | Orange    |   150 |     3 |
|  3 | Apple     |   300 |     5 |
|  4 | Pineapple |  1100 |     1 |
|  5 | Grapes    |  3500 |     1 |
|  6 | Pineapple |  2000 |     3 |
+----+-----------+-------+-------+
6 rows in set (0.00 sec)

___ih_hl_start
mysql> SELECT name, SUM(stock) FROM items GROUP BY name;
___ih_hl_end
+-----------+------------+
| name      | SUM(stock) |
+-----------+------------+
| Apple     |         15 |
| Orange    |          3 |
| Pineapple |          4 |
| Grapes    |          1 |
+-----------+------------+
4 rows in set (0.00 sec)

14行目のGROUP BY nameがGROUP BY句です。

nameカラムでグループ化し、SUM関数によってstockの合計値を計算しています。