GROUP BYステートメントをSQLSERVER

GROUP BYステートメント

GROUP BYステートメントは、1つ以上の列に応じて結果セットをグループ化し、集計関数と組み合わせて使用​​されます。

SQL GROUP BYシンタックス

	SELECT COLUMN_NAME、aggregate_function(COLUMN_NAME)
TABLE_NAME FROM 
WHERE COLUMN_NAMEオペレータ値
GROUP BY COLUMN_NAME

例BY SQLのGROUP

私たちは、以下の「受注」テーブルを持っています:

O_Id 注文日 OrderPrice お客様
1 2008年12月29日 1000年 ブッシュ
2 2008年11月23日 1600 カーター
3 2008年10月5日 700 ブッシュ
4 2008年9月28日 300 ブッシュ
5 2008/08/06 2000 アダムス
6 2008年7月21日 100 カーター

今、私たちは、顧客ごとの合計額(全順序を)見つけたいです。

私たちは、組み合わせ、顧客にGROUP BYステートメントを使用します。

我々は、次のSQL文を使用します。

	注文FROM SELECT顧客、SUM(OrderPrice)
カスタマーBY GROUP

結果セットは次のようになります。

お客様 SUM(OrderPrice)
ブッシュ 2000
カーター 1700
アダムス 2000

グレートバー、右?

あなたはGROUP BYが発生省略した場合はどうなるかを見てみましょう:

	受注FROM SELECT顧客、SUM(OrderPrice)

結果セットは次のようになります。

お客様 SUM(OrderPrice)
ブッシュ 5700
カーター 5700
ブッシュ 5700
ブッシュ 5700
アダムス 5700
カーター 5700

上記の結果セットは、我々が必要とするものではありません。

では、なぜその上、このSELECT文を使用していませんか?上記のSELECT文は、2つ(顧客とSUM(OrderPrice))を指定します。以下のように説明しました。「SUM(OrderPrice)」は、単一の値(「OrderPrice」欄の合計)を返し、「顧客」、戻り値6(表の各行にそれぞれ対応する「注文」)。したがって、我々は正しい結果を得ることができません。しかし、あなたが見てきた、GROUP BYステートメントは、この問題を解決します。

コラムBY複数のグループ

我々はまた、このように、陳述することにより、複数の列グループのために適用することができます。

	注文FROM SELECT顧客、受注日、SUM(OrderPrice)
お客様BY GROUP、受注日
原文链接ます。http:?//www.sysoft.net.cn/Article.aspx ID = 3737

おすすめ

転載: www.cnblogs.com/sysoft/p/11576354.html