ホームページ > データベース > mysql チュートリアル > SQL の HAVING と WHERE: フィルタリングに各句をいつ使用するか?

SQL の HAVING と WHERE: フィルタリングに各句をいつ使用するか?

Mary-Kate Olsen
リリース: 2025-01-14 17:06:46
オリジナル
167 人が閲覧しました

HAVING vs. WHERE in SQL: When to Use Each Clause for Filtering?

SQL における HAVING 句と WHERE 句の違いと応用

集計関数と SQL クエリを使用する場合、HAVING 句と WHERE 句の間には大きな違いがあります。 SQL スキルを向上させるために、それらの違いを詳しく見てみましょう。

HAVING: 集計後のフィルタリング

HAVING は、集計操作の完了後に集計値に条件を適用するために使用されます。つまり、集計後のフィルタとして機能し、集計結果が特定の条件を満たしているかどうかをチェックします。

たとえば、次のクエリはマサチューセッツ州 (MA) の都市とそれに対応する住所の数を取得します。

<code class="language-sql">SELECT City, COUNT(1) AS CNT
FROM Address
WHERE State = 'MA'
GROUP BY City;</code>
ログイン後にコピー

結果をさらに絞り込み、住所が 5 つ以上ある都市のみを表示するには、HAVING 句を使用します。

<code class="language-sql">SELECT City, COUNT(1) AS CNT
FROM Address
WHERE State = 'MA'
GROUP BY City
HAVING CNT > 5;</code>
ログイン後にコピー

WHERE: 集計前のフィルター

HAVING とは異なり、WHERE は集計前のフィルタリングに使用されます。集計プロセスの前に条件を評価します。これは、指定された WHERE 条件を満たすレコードのみが集計に含まれることを意味します。

前の例を続けると、WHERE 句を使用して、住所を計算する前に選択範囲をマサチューセッツ州の都市に制限できます。

<code class="language-sql">SELECT City, COUNT(1) AS CNT
FROM Address
WHERE State = 'MA' AND City = 'Boston'
GROUP BY City;</code>
ログイン後にコピー

主な機能の比較

特性 HAVING WHERE
时间 聚合之后 聚合之前
目的 聚合后过滤 聚合前过滤
作用范围 应用于聚合值 应用于单个记录

概要

HAVING と WHERE は両方とも SQL クエリの最適化において重要な役割を果たします。さまざまな機能と実行時間を理解することで、結果を効果的に絞り込み、データ分析能力を強化できます。

以上がSQL の HAVING と WHERE: フィルタリングに各句をいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート