ROLLUP 例 4 次のクエリ例は、注文数を年別および四半期別に集計したデー タを返します。

 

 

 

 

4

OLAP の使用

2001

501

936

2001

501

 

2001

600

936

2001

600

 

2001

601

792

2001

601

 

2001

700

1836

2001

700

 

ROLLUP 4 次のクエリ例は、注文数を年別および四半期別に集計したデー タを返します。

SELECT year(order_date) AS Year, quarter(order_date)

AS Quarter, COUNT(*) AS Orders

FROM alt_sales_order

GROUP BY ROLLUP(Year, Quarter)

ORDER BY Year, Quarter

次の図は、このクエリの結果を示しています。結果セット内の小計ローは強調 表示されています。各小計ローでは、その小計の計算対象になったカラムに NULL 値が格納されています。

ロー [1] は、両方の年 (2000 年および 2001 ) のすべての四半期の注文数の合 計を示しています。このローは、Year カラムと Quarter カラムの両方が NULL であり、すべてのカラムがプレフィクスから除外されています。

注意 ROLLUP 操作によって返される結果セットには、集合カラムを除くすべ てのカラムが NULL であるローが必ず 1 つ含まれています。このローは、集 合関数に対する全カラムの要約を表しています。たとえば、集合関数として SUM を使用している場合は、このローはすべての値の総計を表します。

ロー [2] は、2000 年および 2001 年の注文数の合計をそれぞれ示しています。 どちらのローも、Quarter カラムの値は NULL になっています。このカラムの 値を加算して、Year の小計を出しているためです。結果セットにこのような ローがいくつ含まれるかは、ROLLUP クエリに登場する変数の数によって決 まります。

[3]としてマークされている残りのローは要約情報を示し、それぞれの年の各 四半期の注文数の合計を表しています。

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

53

Page 69
Image 69
Sybase 12.7 manual ROLLUP 例 4 次のクエリ例は、注文数を年別および四半期別に集計したデー タを返します。, パフォーマンス&チューニング・ガイド