|
|
|
| 第 4 章 | OLAP の使用 |
10 | 1 | 150 | 250 | 250 |
|
10 | 2 | 120 | 370 | 370 |
|
10 | 3 | 100 | 470 | 370 |
|
10 | 4 | 130 | 350 | 350 |
|
10 | 5 | 120 | 381 | 350 |
|
10 | 5 | 31 | 381 | 281 |
|
10 | 6 | 110 | 391 | 261 |
|
20 | 1 | 20 | 20 | 20 |
|
20 | 2 | 30 | 50 | 50 |
|
20 | 3 | 25 | 75 | 75 |
|
20 | 4 | 30 | 85 | 85 |
|
20 | 5 | 31 | 86 | 86 |
|
20 | 6 | 20 | 81 | 81 |
|
30 | 1 | 10 | 10 | 10 |
|
30 | 2 | 11 | 21 | 21 |
|
30 | 3 | 12 | 33 | 33 |
|
30 | 4 | 1 | 25 | 24 |
|
30 | 4 | 1 | 25 | 14 |
|
例:現在のローを除外するウィンドウ・フレーム
この例では、現在のローを除外するウィンドウ・フレームを定義しています。 このクエリは、現在のローを除く 4 つのローの合計を計算します。
SELECT prod_id, month_num, sales, sum(sales) OVER (PARTITION BY prod_id ORDER BY month_num RANGE BETWEEN 6 PRECEDING AND 2 PRECEDING)
FROM sale
ORDER BY prod_id, month_num;
このクエリの結果セットを次に示します。
prod_id | month_num | sales | sum(sales) |
10 | 1 | 100 | (NULL) |
10 | 1 | 150 | (NULL) |
10 | 2 | 120 | (NULL) |
10 | 3 | 100 | 250 |
10 | 4 | 130 | 370 |
10 | 5 | 120 | 470 |
10 | 5 | 31 | 470 |
10 | 6 | 110 | 600 |
20 | 1 | 20 | (NULL) |
20 | 2 | 30 | (NULL) |
20 | 3 | 25 | 20 |
20 | 4 | 30 | 50 |
20 | 5 | 31 | 75 |
20 | 6 | 20 | 105 |
30 | 1 | 10 | (NULL) |
30 | 2 | 11 | (NULL) |
30 | 3 | 12 | 10 |
30 | 4 | 1 | 21 |
30 | 4 | 1 | 21 |
パフォーマンス&チューニング・ガイド | 95 |