MySQL,GROUP BY:グループ化してデータを処理する

スポンサーリンク

鍛錬 988

MySQL,GROUP BY:グループ化してデータを処理する

GROUP BY を使用すると、グループ化してグループごとの合計値や平均値を計算するなどの処理を行うことができます。

使用方法は、以下に示す通りです。

グループ化してグループごとの合計値を表示する場合

以下の例は、カラム1 をグループ化してカラム2の合計値を表示する場合です。

SELECT カラム1, SUM(カラム2) FROM テーブル名 GROUP BY カラム1;

グループ化してグループごとの平均値を表示する場合

以下の例は、カラム1 をグループ化してカラム2の平均値を表示する場合です。

SELECT カラム1, AVG(カラム2) FROM テーブル名 GROUP BY カラム1;
スポンサーリンク

実行結果

以下は、テーブル「vegetable」のカラム「tag」をグループ化して、カラム「price」の合計値と平均値を表示しています。

テーブル「vegetable」

id tag name price
1 A potato 300
2 C ginger 250
3 A pumpkin 500
4 B cabbage 150
5 B eggplant 400
mysql> 
mysql> select * from vegetable;
+------+------+----------+-------+
| id   | tag  | name     | price |
+------+------+----------+-------+
|    1 | A    | potato   |   300 |
|    2 | C    | ginger   |   250 |
|    3 | A    | pumpkin  |   500 |
|    4 | B    | cabbage  |   150 |
|    5 | B    | eggplant |   400 |
+------+------+----------+-------+
5 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> select tag, sum(price) from vegetable group by tag;
+------+------------+
| tag  | sum(price) |
+------+------------+
| A    |        800 |
| B    |        550 |
| C    |        250 |
+------+------------+
3 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> select tag, avg(price) from vegetable group by tag;
+------+------------+
| tag  | avg(price) |
+------+------------+
| A    |        400 |
| B    |        275 |
| C    |        250 |
+------+------------+
3 rows in set (0.00 sec)

上記に示した通り、グループ化してデータの処理を行うことができました。

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