SQL文のHAVING句の目的

HAVING句は、GROUP BY句の後に使用し、検索結果をフィルタリングします。通常はGROUP BYと一緒に使用し、グループ化した結果の選別を行います。

HAVING句はWHERE句に似ていますが、WHEREがレコードをフィルターするのとは対照的に、HAVINGはグループをフィルターします。

つまり、HAVING句はグループ化した後に集計関数を使って結果を絞り込むことができます。特定の条件に当てはまるグループを絞り込む場合などに使用でき、グループ化されたレコードの中からある条件を満足するものだけを絞り込むことができます。

例えば、テーブルに社員の給与情報が格納されていて、給与の合計が10000を超える部署を見つけたいとすると、次のようなSQL ステートメントを使用できます。

SELECT department, SUM(salary) as total_salary
FROM employees
GROUP BY department
HAVING total_salary > 10000;

この例では、まずGROUP BY句で従業員を部署別にグループ化し、次にSUM関数を使用して各部署の給与合計を計算します。最後に、HAVING句で給与合計が10000以上の部署を抽出します。

SELECT 句に記載する必要があり、HAVING 句は GROUP BY 句の後にしか使用できない点に注意してください。

bannerAds