1このステップで、まだ ROLLUP とは見なされない中間の結果セットが生 成されます。

 

 

4 OLAP の使用

 

 

 

 

 

ROLLUP クエリの例

ROLLUP を使用せずに記述した同じ内容のクエリ

 

SELECT A, B, C,

SELECT *

 

 

SUM( D )

FROM ( ( SELECT A, B, C, SUM( D )

 

FROM T1

GROUP BY A, B, C ) UNION ALL ( SELECT

 

GROUP BY ROLLUP (A, B,

A, B, NULL, SUM( D ) GROUP BY A,

 

C);

B ) UNION ALL ( SELECT A, NULL,

 

 

NULL, SUM( D ) GROUP BY A )

 

 

UNION ALL ( SELECT NULL, NULL,

 

 

NULL, SUM( D ) ) )

 

小計ローはデータの分析に役立ちます。特に、データが大量にある場合、デー タにさまざまな次元がある場合、データがさまざまなテーブルに含まれている 場合、あるいはまったく異なるデータベースに含まれている場合に威力を発揮 します。たとえば販売マネージャが、売上高についてのレポートを営業担当者 別、地域別、四半期別に整理して、売上パターンの理解に役立てることができ ます。データの小計は、販売マネージャが売上高の全体像をさまざまな視点か ら分析するのに役立ちます。販売マネージャが比較したいと考える基準に基づ いて要約情報が提供されていれば、データの分析を容易に行うことができます。

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 を返し ます。

パフォーマンス&チューニング・ガイド

49

Page 65
Image 65
Sybase 12.7 manual 1このステップで、まだ ROLLUP とは見なされない中間の結果セットが生 成されます。, パフォーマンス&チューニング・ガイド