SQL SELECT ステートメントの HAVING 句と WHERE 句の違い
SQL SELECT ステートメントでは、HAVING 句と WHERE 句はデータ フィルタリングにおいて異なる目的を果たします。正確なクエリ結果を取得するには、その使用法を理解することが重要です。
HAVING 句
HAVING 句は、GROUP BY 句を使用した集計後に適用されます。集計値に適用される条件に基づいて、グループ化された行をフィルター処理します。例:
<code class="language-sql">SELECT City, COUNT(1) AS CNT FROM Address WHERE State = 'MA' GROUP BY City HAVING COUNT(1) > 5</code>
このクエリは、マサチューセッツ州の都市とその住所の数 (5 つ以上) を含むテーブルを返します。
WHERE 句
対照的に、WHERE 句は集計前に行をフィルタリングします。個々の行の条件を評価し、条件を満たす行のみを選択します。例:
<code class="language-sql">SELECT City, COUNT(1) AS CNT FROM Address WHERE State = 'MA' AND City LIKE '%ton' GROUP BY City</code>
このクエリは、マサチューセッツ州の都市 (名前が「ton」で終わる) の数とその住所を含むテーブルを返します。
主な違い
HAVING と WHERE の主な違いは、いつ適用されるかです。
この違いを活用することで、開発者は SQL SELECT ステートメントのデータを正確に操作およびフィルターして、目的の結果を取得できます。
以上がSQL の HAVING と WHERE: データ フィルタリングに各句をいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。