ホームページ > データベース > SQL > SQLの句ごとにグループを使用してデータをグループ化するにはどうすればよいですか?

SQLの句ごとにグループを使用してデータをグループ化するにはどうすればよいですか?

Karen Carpenter
リリース: 2025-03-13 13:51:31
オリジナル
376 人が閲覧しました

SQLの句ごとにグループを使用してデータをグループ化するにはどうすればよいですか?

SQLのグループGROUP BYは、「各国の顧客の数を見つける」など、指定された列に同じ値を概要行にグループ化する行をグループ化するために使用されます。多くの場合、集計関数(Count、Max、Min、Sum、AVGなど)で使用され、データの各グループで計算を実行します。

GROUP BYを使用するには、通常、SQLクエリを次のように構成します。

 <code class="sql">SELECT column_name(s), aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);</code>
ログイン後にコピー

たとえば、columns CustomerIDOrderDate 、およびOrderAmountを搭載したOrdersという名前のテーブルがあり、顧客あたりの合計注文額を見つけたい場合は、以下を使用します。

 <code class="sql">SELECT CustomerID, SUM(OrderAmount) AS TotalOrderAmount FROM Orders GROUP BY CustomerID;</code>
ログイン後にコピー

このクエリは、 CustomerIDによってOrdersテーブルをグループ化し、各顧客のOrderAmountの合計を計算します。

SQLによってグループで使用されるいくつかの一般的な集計関数は何ですか?

SQLの集計関数は、一連の値で計算を実行し、単一の値を返します。それらは、各グループのデータを要約するためにGROUP BYごとに一般的に使用されます。一般的な集計関数は次のとおりです。

  • count() :グループ内の行数をカウントします。たとえば、 COUNT(CustomerID)顧客の数をカウントします。
  • sum() :値のセットの合計を計算します。たとえば、 SUM(OrderAmount)合計順序金額を計算します。
  • AVG() :値の平均を計算します。たとえば、 AVG(OrderAmount)平均注文額を計算します。
  • min() :値のセットで最小値を返します。たとえば、 MIN(OrderAmount)最小の注文量を見つけます。
  • max() :値のセットで最大の値を返します。たとえば、 MAX(OrderAmount)最大の注文額を見つけます。

これらの機能は、洞察に富んだレポートと要約を生成するために、さまざまな方法でGROUP BYと組み合わせることができます。

SQLの複数の列でグループを使用できますか?

はい、SQLの複数の列でGROUP BY使用できます。複数の列でグループ化すると、結果はそれらの列の値の組み合わせによってグループ化されます。これにより、より詳細なデータ分析が可能になります。

複数の列によるグループ化の構文は、句GROUP BY内の列をリストするだけで、コンマで分離されています。

 <code class="sql">SELECT column1, column2, aggregate_function(column3) FROM table_name GROUP BY column1, column2;</code>
ログイン後にコピー

たとえば、年間顧客あたりの合計注文額を見つけたい場合は、以下を使用できます。

 <code class="sql">SELECT CustomerID, YEAR(OrderDate) AS OrderYear, SUM(OrderAmount) AS TotalOrderAmount FROM Orders GROUP BY CustomerID, YEAR(OrderDate);</code>
ログイン後にコピー

このクエリは、 CustomerIDおよびOrderDateの年ごとのOrdersテーブルをグループ化し、顧客と年の一意の組み合わせの合計注文額を計算します。

Have句は、SQLによってGroupと組み合わせてどのように機能しますか?

HAVING句は、 GROUP BYごとにグループと組み合わせて使用​​され、指定された条件に基づいてグループをフィルタリングします。句は集約が行われる前に個々の行をろ過するWHEREで、 HAVINGは集約が発生した後にグループ化されたデータをフィルターします。

両方のGROUP BYを使用し、 HAVINGクエリの典型的な構造は次のとおりです。

 <code class="sql">SELECT column_name(s), aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition ORDER BY column_name(s);</code>
ログイン後にコピー

たとえば、顧客あたりの合計注文額を見つけたいが、総注文額が1000を超える顧客のみを含める場合は、以下を使用します。

 <code class="sql">SELECT CustomerID, SUM(OrderAmount) AS TotalOrderAmount FROM Orders GROUP BY CustomerID HAVING SUM(OrderAmount) > 1000;</code>
ログイン後にコピー

このクエリでは、 GROUP BY ClauseはCustomerIDによる注文をグループ化し、各顧客の合計注文額を計算します。 HAVING句は、結果をフィルタリングして、合計注文額が1000を超えるグループ(顧客)のみを含めます。

以上がSQLの句ごとにグループを使用してデータをグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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