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