TOP > SQL>

GROUP BY

データベース ORACLE MySQL PostgreSQL
対応状況

説明

「GROUP BY」を使用することにより、指定した列でグループを作成して合計、平均などの集計をすることが出来ます。

GRUP BYと組み合わせて使える関数
MAX 最大値
MIN 最小値
AVG 平均値
SUM 合計
COUNT カウント

構文
SELECT 列名・・・ FROM 表名 GROUP BY 列名;

実際に使用した例

たとえば下の表の用に、ユーザID,購入金額を管理している表があるとします。
使用例
mysql> select * from uriage;
+---------+-------+
| user_id | money |
+---------+-------+
|       1 | 20000 |
|       1 | 40000 |
|       1 | 50000 |
|       2 | 30000 |
|       2 | 50000 |
|       3 | 50000 |
|       4 | 50000 |
|       4 |  4000 |
|       5 | 14000 |
+---------+-------+
9 rows in set (0.09 sec)

この表からユーザIDごとに購入金額の合計を計算したいときなどにGROUP BYを使用します。

ユーザごとに購入金額を計算した例
mysql> SELECT user_id,sum(money) FROM uriage
    -> GROUP BY user_id;
+---------+------------+
| user_id | sum(money) |
+---------+------------+
|       1 |     110000 |
|       2 |      80000 |
|       3 |      50000 |
|       4 |      54000 |
|       5 |      14000 |
+---------+------------+
5 rows in set (0.05 sec)

ユーザごとに購入回数を計算した例
mysql> SELECT user_id,COUNT(money) FROM uriage
    -> GROUP BY user_id;
+---------+--------------+
| user_id | COUNT(money) |
+---------+--------------+
|       1 |            3 |
|       2 |            2 |
|       3 |            1 |
|       4 |            2 |
|       5 |            1 |
+---------+--------------+
5 rows in set (0.02 sec)
関連ページ
最大値(MAX) 最小値(MIN) カウント(COUNT)
合計(SUM) 平均(AVG) ・GROUP BY
お勧め商品
最近の記事
当サイトについて  免責事項  プライバシーポリシー
Copyright (C) Sasuke 2012 All rights reserved.