ホームページ  >  記事  >  毎日のプログラミング  >  mysqlにおけるgroup byとhaveの関係

mysqlにおけるgroup byとhaveの関係

下次还敢
下次还敢オリジナル
2024-04-27 01:57:151155ブラウズ

GROUP BY は同じ値のデータをグループ化し、集計関数を実行します。HAVING はグループ化されたデータをフィルタリングします。GROUP BY グループ化後、HAVING はグループ化結果をフィルタリングします。後続のデータの集計に適用されます。

mysqlにおけるgroup byとhaveの関係

MySQL における GROUP BY と HAVING の関係

GROUP BY と HAVING は両方とも MySQL で集計に使用されますデータをフィルタリングするための句。この 2 つは連携して、グループ化されたデータを要約し、フィルター処理します。

GROUP BY

GROUP BY 句は、同じ値のデータをグループ化し、各グループに対して SUM、COUNT、AVG などの集計関数を実行します。データ セットをさまざまなグループに分割し、各グループには一意のキー値またはキー値のセットがあります。

HAVING

HAVING 句は、GROUP BY によってグループ化されたデータをフィルター処理するために使用されます。これは WHERE 句に似ていますが、集計されたデータにのみ適用されます。 HAVING 句を使用すると、ユーザーは集計結果に基づいてグループをフィルタリングできます。例:

  • 特定の平均値を持つグループをフィルタリングする
  • 特定の平均値を超えるグループ数を含むグループをフィルタリングするしきい値
  • null または null 以外の値を持つグループのフィルタリング

関係

GROUP BY と HAVING の関係は次のとおりです。

  • GROUP BY はまずデータをグループ化し、次に HAVING はグループ化されたデータをフィルターします。
  • HAVING 句の条件では、集計関数を使用するか、グループ化キーを参照する必要があります。
  • HAVING グループをフィルタリングする前に、まず GROUP BY グループ化を実行する必要があります。

次のクエリでは、GROUP BY と HAVING を使用して、orders テーブルをグループ化およびフィルタリングします:

<code class="sql">SELECT product_category, SUM(quantity) AS total_quantity
FROM orders
GROUP BY product_category
HAVING SUM(quantity) > 100;</code>

このクエリは、注文を並べ替えます。製品カテゴリがグループ化され、各カテゴリの合計数量が計算されます。次に、HAVING を使用して、合計数が 100 未満のカテゴリを除外します。

以上がmysqlにおけるgroup byとhaveの関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。