概要:このチュートリアルでは、SQL ServerGROUP BY
句を使用して、グループ内の行を一つ以上の列ごとに配置する方法を学習します。
Sql Server GROUP BY句の概要
GROUP BY
句を使用すると、クエリの行をグループ単位で配置できます。 グループは、GROUP BY
句で指定した列によって決定されます。,
以下は、GROUP BY
句構文を示しています。
Code language: SQL (Structured Query Language) (sql)
このクエリでは、GROUP BY
句で、GROUP BY
句にリストされている列の値の組み合わせごとにグループを生成しました。
次の例を考えてみましょう。
この例では、顧客idと顧客idを持つ顧客の注文された年を取得しました。,
出力からはっきりとわかるように、idを持つ顧客は2016年に一つの注文をし、2018年に二つの注文をしました。 Id twoを持つ顧客は2017年に二つの注文をし、2018年に一つの注文をしました。
GROUP BY
句をクエリに追加して効果を確認しましょう。
GROUP BY
句は、最初の三行を二つに配置しました顧客idと注文年の一意の組み合わせを持つ他の二つのグループにグループと次の三つの行。,
機能的に言えば、上記のクエリのGROUP BY
句は、DISTINCT
句を使用する次のクエリと同じ結果を生成しました。
SQL Server GROUP BY句および集計関数
実際には、GROUP BY
句は、サマリーレポートを生成するための集計関数でよく使用されます。
GROUP BY
句は行をグループに配置し、集計関数は要約(count、min、max、average、sumなど)を返します。,)各グループのために。,
GROUP BY
句にリストされていない列または式を参照する場合は、次のクエリを実行する必要があります。その列を集計関数の入力として使用します。 それ以外の場合は、列または式がグループごとに単一の値を返すという保証がないため、エラーが発生します。, たとえば、次のクエリは失敗します。
その他のGROUP BY句の例
GROUP BY
句がどのように機能するかを理解するために、さらにいくつかの例を見てみましょう。
COUNT()関数でGROUP BY句を使用する例
次のクエリは、すべての都市の顧客数を返します。
この例では、GROUP BY
句groups都市ごとの顧客とCOUNT()
関数は、各都市の顧客の数を返します。,
同様に、次のクエリでは、州および都市ごとに顧客数が返されます。
MINおよびMAX関数の例でGROUP BY句を使用する
次のステートメントは、2018年モデルのすべての製品のブランド別の最小および最大の定価を返します。
この例では、WHERE
句は、いつものようにGROUP BY
句の前に処理されます。,v>
SUM関数でGROUP BY句を使用する例
以下を参照してくださいorder_items
テーブル:
次のクエリでは、SUM()
関数を使用して、すべての注文の正味値を取得します。
このチュートリアルでは、sql serverGROUP BY
列の指定されたリストによってグループ内の行を配置する句。,