データの集約

意思決定支援システム用にトランザクション データの集計をまとめたレポートを作成するために、複雑でリソースも多く使用する処理を行う必要が生じることがあります。SQL Server のデータの多次元分析には、次の 2 つのコンポーネントを主に使用します。

  • Integration Services
    Integration Services は、トランザクション データの抽出、およびデータ ウェアハウスやデータ マートの集計サマリへのデータの変換をサポートします。詳細については、「Integration Services の概要」を参照してください。
  • Microsoft SQL Server Analysis Services
    Analysis Services では、データ ウェアハウスのデータを、事前計算済みの集約情報を含む多次元キューブ形式データとして編成します。この集約情報は、複雑な分析クエリへの回答をすばやく得るために使用されます。PivotTable® サービスでは、クライアントは多次元データにアクセスできます。また、分析処理で使用される多次元構造を定義する一連のウィザードや、分析構造の管理に使用する Microsoft 管理コンソール スナップインも提供されます。アプリケーションは、API のセットを使用して、分析データを分析します。詳細については、「Analysis Services の概念とオブジェクト」を参照してください。

Transact-SQL を使用した単純な集計レポートの作成

アプリケーションでは、次の Transact-SQL 要素を使用して単純な集計レポートを生成できます。

上記の各演算子は、各項目に対応する詳細行、およびグループごとの集計サマリ (まとめ) 行を含む結果セットを生成します。GROUP BY 句を使用すると、詳細行なしで、各グループの集計サマリだけを結果セットとして生成できます。

アプリケーションでは、CUBE、ROLLUP、COMPUTE、または COMPUTE BY の代わりに Analysis Services を使用することをお勧めします。CUBE 演算子と ROLLUP 演算子は、OLE DB や ADO にアクセスしないスクリプトやストアド プロシージャなどの環境用に予約しておきます。

COMPUTE と COMPUTE BY は、旧バージョンとの互換性を確保するためにサポートされています。ROLLUP 演算子は、COMPUTE または COMPUTE BY のいずれかに対して実行されます。COMPUTE または COMPUTE BY によって生成されたサマリ値は、各グループの詳細行を返す結果セットを間に挟んだ複数の結果セット、または主結果セットの後に総計を付加した単一の結果セットとして返されます。このような複数の結果セットを処理することで、アプリケーション コードの複雑さの度合いも高まります。COMPUTE も COMPUTE BY もサーバー カーソルではサポートされていません。ただし、ROLLUP はサーバー カーソルでサポートされています。CUBE 演算子と ROLLUP 演算子は、小計行や総計行を埋め込んだ単一の結果セットを生成します。クエリ オプティマイザでは、COMPUTE および COMPUTE BY で生成可能なものに比べてより効率的な実行プランを ROLLUP で生成できる場合もあります。

上記の各演算子を指定しないで GROUP BY 句を使用すると、グループで集計された小計をそれぞれ 1 行ずつにまとめた単一の結果セットが返されます。この結果セットには、詳細行は含まれません。

参照

概念

結果セットの操作

ヘルプおよび情報

SQL Server 2005 の参考資料の入手