【SQL】GROUP BYの使い方をわかりやすく解説する!

Web技術
スポンサーリンク

テーブルをグループに切り分けて集計したい。

GROUP BYってどうやって使うの?

わかりやすく教えて欲しい!

こういった疑問にこたえます。

この記事を読めば
  • 集約関数とGROUP BYを使ってグループごとに集計することができるようになる

エンジニアの僕がわかりやすく解説します。

GROUP BY句の使い方

GROUP BY句はテーブルをいくつかのグループに切り分けて集約したいときに使います。

例えば、次のようなshohinテーブルがあったとします。

shohin_idshohin_meishohin_bunruikakaku
‘0001’‘鉛筆’‘事務用品’100
‘0002’‘ボールペン’‘事務用品’100
‘0003’‘Tシャツ’‘衣類’1000
‘0004’‘鍋’‘キッチン用品’2000
‘0005‘包丁’‘キッチン用品’1500
‘0006’‘帽子’‘衣類’NULL
商品テーブル

このテーブルの商品分類ごとの平均価格を出したい場合などにGROUP BY句を使用します。

GROUP BYの構文は次の通りです。

SELECT <列名1>, <列名2>,・・・
  FROM <テーブル名>
GROUP BY <列名1>, <列名2>,・・・;

例えば、shohinテーブルの商品分類ごとの最大価格を出したい場合は次のようなSQLになります。

SELECT shohin_bunrui, MAX(kakaku)
  FROM shohin
GROUP BY shohin_bunrui;

実行結果

 shohin_bunrui | max  
---------------+------
 キッチン用品  | 2000
 衣服          | 1000
 事務用品      |  100

GROUP BY句に指定する列のことを集約キーグループ化列と呼びます。

ここではshohin_bunruiが集約化キーです。

GROUP BYでshohin_bunruiを指定すると「キッチン用品」「衣類」「事務用品」の3つの行が表示されました。

GROUP BYはテーブルを集約キーでカットするイメージです。区切りごとに集計します。

GROUP BY句はWHERE句の後に記述します。

句の記述順序はこのようになります。

SELECT句 → FROM句 → WHERE句 → GROUP BY句

入れ替えは不可なので覚えておきましょう。

GROUP BYの使い方まとめ

解説の内容をまとめます。

  • GROUP BYはテーブルをいくつかのグループに切り分けて集約したいときに使う
  • GROUP BY句に指定する列のことを集約キーグループ化列と呼び
  • GROUP BY句はWHERE句の後に書く

以上、お疲れ様でした。

コメント

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