第 4 章 OLAP の使用
パフォーマンス&チューニング・ガイド 73
このクエリの結果セットを次に示します。
emp_id emp_lname curr prev delta
------ --------- --------- ---------- ----------
102 Whitney 45700.000 64500.000 -18800.000
105 Cobb 62000.000 68400.000 -6400.000
160 Breault 57490.000 96300.000 -38810.000
243 Shishov 72995.000 59840.000 13155.000
247 Driscoll 48023.690 87900.000 -39876.310
249 Guevara 42998.000 48023.690 -5025.690
266 Gowda 59840.000 57490.000 2350.000
278 Melkisetian 48500.000 74500.000 -26000.000
316 Pastor 74500.000 62000.000 12500.000
445 Lull 87900.000 67890.000 20010.000
453 Rabkin 64500.000 42998.000 21502.000
479 Siperstein 39875.500 42500.000 -2624.500
501 Scott 96300.000 54900.000 41400.000
529 Sullivan 67890.000 72995.000 -5105.000
582 Samuels 37400.000 39875.500 -2475.500
604 Wang 68400.000 45700.000 22700.000
839 Marshall 42500.000 48500.000 -6000.000
1157 Soo 39075.000 37400.000 1675.000
1250 Diaz 54900.000
ここではウィンドウ関数 SUM() を使用していますが、ウィンドウの指定方法
により、この合計には現在のローまたは前のローの salary 値だけが含まれてい
ます。また、結果セットの最初のローには前のローが存在しないため、最初の
ローの prev 値は NULL になります。したがって、delta も NULL になります。
ここまでの例では、OVER() 句と一緒に SUM() 集合関数を使用しました。
明示的なウィンドウ句とインラインのウィンドウ句
SQL OLAP では、クエリ内でウィンドウを指定する方法が 2 とおり用意されて
います。
• 明示的なウィンドウ句。HAVING 句の後でウィンドウを定義します。OLAP
関数を呼び出すときには、このようなウィンドウ句で定義したウィンドウ
を、ウィンドウの名前を指定して参照します。たとえば次のようにします。
SUM ( ...) OVER w2