今回の記事はMySQLを用いてgroup byを使ってデータを取得する方法をご紹介する内容になっています。初心者にも分かりやすいように記載していくので是非参考にしてみて下さい。
group byの使い方
group byはどのように使うかですが、データをまとまりごとに表示したい場合などに有用です。例えば下記のようなデータを考えてみましょう。

作り方は簡単で、下記コマンドで作れます。
#サーバ起動
mysql.server start
#ログイン
mysql -u root -p
#データベース作成
mysql> CREATE DATABASE practice001
mysql> connect practice001
mysql> create table table3 (id varchar(10), name varchar(10),cost int);
mysql> insert into table1 (id,name,age) values ("item1","pen",300),("item2","pen",500),("item3","pencil",100),("item4","pencil",50),("item5","pen",1000);
では確認してみましょう。
mysql> select * from table3;
+-------+--------+------+
| id | name | cost |
+-------+--------+------+
| item1 | pen | 300 |
| item2 | pen | 500 |
| item3 | pencil | 100 |
| item4 | pencil | 50 |
| item4 | pen | 1000 |
+-------+--------+------+
5 rows in set (0.00 sec)
画像と似た構成にできました。では例えばここから「pen」と「pencil」の合計金額を計算したい場合どのように取得しましょう。SQLのsumを用いて全てのコストを足していくでもできるのですが、数が多いと不可能なのでgroup byを用いてグループごとに金額を足していきましょう。
group byを使ってデータ取得
mysql> select name,sum(cost) from table3 group by name;
+--------+-----------+
| name | sum(cost) |
+--------+-----------+
| pen | 1800 |
| pencil | 150 |
+--------+-----------+
2 rows in set (0.00 sec)
簡単に取得することができました。
では今回の記事は以上です。他にも外部結合、内部結合などSQL関連の記事を多数記載しているので是非興味あればサイト内見ていって下さい。
コメント