共通SQL

GROUP BY / HAVING

グループ化とグループに対する集計条件の指定

解説

特定のカラムの値ごとにデータをまとめ、部署ごとの平均給与や商品カテゴリごとの売上合計などを算出するグループ集計構文です。

WHERE句とHAVING句の決定的な違い

  • WHERE句: グループ化する「前」に行単位で絞り込みます(集計関数は使えません)。
  • HAVING句: グループ化して計算された「後」の結果に対して絞り込みます(HAVING AVG(salary) > 250000 など)。
構文
SELECT グループ列, 集計関数 FROM テーブル GROUP BY グループ列 [HAVING 集計条件];
具体例
SELECT dept_id, AVG(salary) FROM emps_test GROUP BY dept_id HAVING AVG(salary) > 250000;

この構文を実際に書いて試してみませんか?

SQLエディタを開く