Sybase 12.7 Home Theater System User Manual


 
4 OLAP の使用
パフォーマンス&チューニング・ガイド 53
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] としてマークされている残りのローは要約情報を示し、それぞれの年の各
四半期の注文数の合計を表しています。