MySQLでデータを取得する時にIDが同じデータでグループ分けし、グループ毎の最大値や最小値、また合計値を取得したい場合があります。

今回はそのような要望を解決する方法をご紹介します。

グループ分け(集約)にはGROUP BYを使う

グループ分けはGROUP BYを使います。

GROUP BY カラム名

とすることで、カラムの内容が同じものをグループ化して表示することができます。

カラム内の最大値を求めるにはMAXを使う

select id, MAX(num) FROM テーブル名 GROUP BY id

カラム内の最小値を求めるにはMINを使う

select id, MIN(num) FROM テーブル名 GROUP BY id

カラム内の合計値を求めるにはSUMを使う

select id, SUM(num) FROM テーブル名 GROUP BY id

関数を使えば簡単にできるので、使わない理由はないですよね。

データベースでできることはデータベースにまかせてしまったほうが便利です。

本日は以上です。