Sybase 12.7 Home Theater System User Manual


 
4 OLAP の使用
パフォーマンス&チューニング・ガイド 49
小計ローはデータの分析に役立ちます。特に、データが大量にある場合、デー
タにさまざまな次元がある場合、データがさまざまなテーブルに含まれている
場合、あるいはまったく異なるデータベースに含まれている場合に威力を発揮
します。たとえば販売マネージャが、売上高についてのレポートを営業担当者
別、地域別、四半期別に整理して、売上パターンの理解に役立てることができ
ます。データの小計は、販売マネージャが売上高の全体像をさまざまな視点か
ら分析するのに役立ちます。販売マネージャが比較したいと考える基準に基づ
いて要約情報が提供されていれば、データの分析を容易に行うことができます。
OLAP を使用すると、ローおよびカラムの小計を分析、計算する処理をユーザ
の目から隠すことができます。 4-2 に、Sybase IQ での小計の計算の概念を
示します。
4-2: 小計
1 このステップで、まだ ROLLUP とは見なされない中間の結果セットが生
成されます。
2 小計が評価され、結果セットに付加されます。
3 クエリ内の ORDER BY 句に従ってローが並べられます。
NULL 値と小計ロー
GROUP BY 操作に対する入力のローに NULL が含まれているときは、その中
に、ROLLUP または CUBE 操作によって追加された小計ローと、最初の入力
データの一部として NULL 値を含んでいるローが混在している可能性があり
ます。
Grouping() 関数は、小計ローをその他のローから区別します。具体的には、
GROUP BY リストのカラムを引数として受け取り、そのカラムが小計ローで
あるために NULL になっている場合は 1 を返し、それ以外の場合は 0 を返し
ます。
ROLLUP クエリの例 ROLLUP を使用せずに記述した同じ内容のクエリ
SELECT A, B, C,
SUM( D )
FROM T1
GROUP BY ROLLUP (A, B,
C);
SELECT *
FROM ( ( SELECT A, B, C, SUM( D )
GROUP BY A, B, C ) UNION ALL ( SELECT
A, B, NULL, SUM( D ) GROUP BY A,
B ) UNION ALL ( SELECT A, NULL,
NULL, SUM( D ) GROUP BY A )
UNION ALL ( SELECT NULL, NULL,
NULL, SUM( D ) ) )