SQLのHAVING句の使い方は?
GROUP BY句で結果をフィルターするためにHAVING句を使用します。GROUP BY句の後に、ORDER BY句の前に使用します。
一般のHAVINGステートメントの構文は次のようになります。
SELECT column1, column2, ...
FROM table
GROUP BY column1, column2, ...
HAVING condition;
上で使う構文におけるcolumn1、column2などは取得したいカラム、tableは取得したいテーブル、GROUP BY句はデータのグルーピングに、HAVING句はグルーピングしたデータに対するフィルターに使います。
HAVING節では、条件演算子(例:=、<、>、<>、BETWEEN、LIKEなど)や論理演算子(例:AND、OR、NOT)を使用して条件を構築できます。また、SUM、COUNT、AVGなど、集計関数の結果をフィルタリングする条件が一般的に使用されます。
HAVING句の使用例を次に示します。
SELECT department, COUNT(*) as total_employees
FROM employees
GROUP BY department
HAVING total_employees > 10;
Employeesという名前のテーブルのdepartment列をグループ化し、そのグループごとのCOUNT(*)の集計結果が10より大きいもののみを表示するHAVING句を使用したクエリです。
HAVING句は、グループ化したデータに対してのみフィルターを適用できる点に注意してください。グループ化しないデータに対してフィルターを適用する場合は、WHERE句を使用してください。