基本的なSQLクエリを使用してデータベースからデータを取得できますが、これはしばしばビジネス要件を満たすのに十分なインテリジェンスを提供しません。 SQLでは、GROUP BY句を使用して集計関数を適用するために、行レベルの属性に基づいてクエリ結果をグループ化する機能も提供されます。たとえば、以下の属性で構成される注文データテーブルを考えてみましょう。
- OrderID - 各注文を一意に識別する数値。このフィールドはデータベースの主キーです。
- 営業担当者 - 商品を販売した営業担当者の名前を示すテキスト値。このフィールドは、人事情報を含む別のテーブルへの外部キーです。
- 顧客ID - 顧客口座番号に対応する数値。このフィールドは外部キーでもあり、顧客アカウント情報を含むテーブルを参照します。
- 収入 - 売り上げ額に相当する数値。
営業担当者のパフォーマンスレビューを行う時間が来ると、Ordersテーブルにはそのレビューに使用される貴重な情報が含まれます。 Jimを評価するときは、たとえば、Jimのすべての販売記録を取得する簡単なクエリを書くことができます。
SELECT *
注文から
どこの営業担当者が「ジム」
これは、Jimが行った販売に対応するデータベースからすべてのレコードを検索します。 OrderID営業担当者CustomerID収益
12482ジム182 40000
12488ジム219 25000
12519ジム137 85000
12602ジム182 10000
12741ジム155 90000
この情報を確認し、手動による計算を実行してパフォーマンス統計を得ることもできますが、これは会社の各営業担当者が繰り返さなければならない退屈な作業です。代わりに、この作業を会社の各営業担当者の統計を計算する単一のGROUP BYクエリで置き換えることができます。単にクエリを記述し、セールス担当者フィールドに基づいて結果をグループ化するように指定するだけです。次に、SQL集計関数のいずれかを使用して、結果に対して計算を実行できます。 ここに例があります。次のSQL文を実行した場合: (売上)AS '平均' AS(平均) '、'収益 '、'収入 '、'収益 '
注文から
営業担当者によるGROUP
次の結果が得られます。 営業担当者合計最小最小平均数
ジム250000 10000 90000 50000 5
Mary 342000 24000 102000 57000 6
Bob 118000 4000 36000 39333 3
ご覧のとおり、この強力な機能により、SQLクエリーから小さなレポートを生成し、パフォーマンスレビューを行うマネージャに貴重なビジネスインテリジェンスを提供することができます。 GROUP BY句は、この目的のためにデータベースでよく使用され、DBAのトリックの中で貴重なツールです。




