第 4 章 OLAP の使用
パフォーマンス&チューニング・ガイド 67
BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING の組
み合わせを使用すると、グループ化したクエリとのジョインを構築しなくて
も、パーティション全体についての集合を計算できます。パーティション全体
についての集合は、レポート集合とも呼ばれます。
CURRENT ROW の概念
物理的な集合グループでは、現在のローに対する相対位置に基づき、隣接する
ローの数に応じて、ローを含めるか除外するかが判断されます。現在のロー
は、クエリの中間結果における次のローへの参照にすぎません。現在のローが
前に進むと、ウィンドウ内に含まれる新しいロー・セットに基づいてウィンド
ウが再評価されます。現在のローをウィンドウ内に含めるという要件はありま
せん。
ウィンドウ・フレーム句を指定しなかった場合のデフォルトのウィンドウ・フ
レームは、ウィンドウ順序句を指定しているかどうかによって異なります。
• ウィンドウ指定にウィンドウ順序句が含まれている場合は、ウィンドウの
開始ポイントは UNBOUNDED PRECEDING、終了ポイントは CURRENT
ROW になり、累積値の計算に適した可変サイズのウィンドウになります。
• ウィンドウ指定にウィンドウ順序句が含まれていない場合は、ウィンドウの
開始ポイントは UNBOUNDED PRECEDING、終了ポイントは UNBOUNDED
FOLLOWING になり、現在のローに関係なく固定サイズのウィンドウになり
ます。
注意 ウィンドウ・フレーム句はランク付け関数とは併用できません。
ローベース ( ロー指定 ) または値ベース ( 範囲指定 ) のウィンドウ・フレーム
単位を指定してウィンドウを定義することもできます。
<WINDOW FRAME UNIT> ::= ROWS | RANGE
<WINDOW FRAME EXTENT> ::= <WINDOW FRAME START> | <WINDOW
FRAME BETWEEN>
ウィンドウ・フレーム句で BETWEEN を使用するときは、ウィンドウ・フレー
ムの開始ポイントと終了ポイントを明示的に指定します。
ウィンドウ・フレーム句でこの 2 つの値のどちらか一方しか指定しなかった場
合は、他方の値がデフォルトで CURRENT ROW になります。
ROWS
ウィンドウ・フレーム単位 ROWS では、現在のローの前後に指定の数のロー
を含んでいるウィンドウを定義します ( 現在のローは、ウィンドウの開始ポイ
ントと終了ポイントを決定するための参照ポイントになります )。それぞれの
分析計算は、パーティション内の現在のローに基づいて行われます。ローで表
現されるウィンドウを使用して限定的な結果を生成するには、ユニークな順序
付けの式を指定する必要があります。