MySQLのHAVING句の役割は?
HAVING句は、MySQLでGROUP BY句の後にフィルタリングするために使用します。GROUP BY句で集計関数の結果に基づいて結果セットをフィルタリングできます。
具体的には、HAVING句は特定の条件を満たすグループを絞り込むために使うことができます。集計関数、列名、定数などが含まれていて、=、<、>、AND、OR などの論理演算子を使用して条件を組み合わせていきます。
たとえば、注文情報を格納するテーブルがあり、注文個数が10以上の顧客を見つけたい場合、GROUP BY句を使用して顧客別にグループ化し、HAVING句で結果セットをフィルタリングできます。
customer_id、order_count as COUNT(*) を求める
注文から
customer_id でグループ化
注文数 > 10
HAVING句は、顧客の注文数が10より大きい顧客を抽出するために使用されている。WHERE句でフィルタリングした場合、WHERE句はグループ化の前でのみフィルタリングを使用でき、グループ化の後にフィルタリングを使用できないため、エラーが発生するだろう。