
GROUP BY 句の拡張機能
ROLLUP 例 5 この ROLLUP 操作の例では、年別、四半期別、地域別の注文数 を集計するというやや複雑な結果セットを返します。この例では、第 1 および 第 2 四半期と 2 つの地域 ( カナダと東部地区 ) だけを分析します。
SELECT year(order_date) AS Year, quarter(order_date) AS Quarter, region, COUNT(*) AS Orders
FROM alt_sales_order WHERE region IN ('Canada', 'Eastern') AND quarter IN (1, 2)
GROUP BY ROLLUP (Year, Quarter, Region) ORDER BY Year, Quarter, Region
次の図は、このクエリの結果セットを示しています。各小計ローでは、その小 計の計算対象になったカラムに NULL が格納されています。
ロー [1] はすべてのローの集計結果であり、Year、Quarter、Region カラムに NULL が含まれています。このローの Orders カラムの値は、カナダと東部地 区の 2000 年および 2001 年の第 1 および第 2 四半期の注文数の合計を示してい ます。
[2]としてマークされているローは、それぞれの年 (2000 年と 2001 年 ) におけ るカナダと東部地区の第 1 および第 2 四半期の注文数の合計を示しています。 ロー [2] の値を足すと、ロー [1] に示されている総計に等しくなります。
54 | Sybase IQ |