【ぐるーぷばい】
GROUP BY とは?
💡 データを「グループに分けて」集計するためのSQL句
📌 このページのポイント
GROUP BYってどういうときに使うの?
「カテゴリごとの商品数」「部署ごとの平均給与」「月ごとの売上合計」みたいに、何かの単位で集計したいときに使う。「SELECT category, COUNT(*) FROM products GROUP BY category」とすればカテゴリごとの商品数が出る。
WHEREとHAVINGって何が違うの?
WHEREは「グループ化する前」に行を絞る条件、HAVINGは「グループ化した後」にグループを絞る条件。例えば「価格1000円以上の商品だけを対象に(WHERE)、カテゴリごとに集計して、10件以上あるカテゴリだけ表示(HAVING)」という2段階の絞り込みができる。
GROUP BYに複数のカラムを指定できるの?
できるよ。「GROUP BY category, year」とすれば「カテゴリ×年」の組み合わせごとに集計される。2軸でのクロス集計みたいなイメージ。
GROUP BYで遅くなることってある?
📖 おまけ:英語の意味
「GROUP BY」 = 〜でグループにする
💬 「GROUP(グループにする)」+「BY(〜によって)」で、指定カラムでグループ分けするという意味