ROWS

4 OLAP の使用

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 では、現在のローの前後に指定の数のロー を含んでいるウィンドウを定義します ( 現在のローは、ウィンドウの開始ポイ ントと終了ポイントを決定するための参照ポイントになります )。それぞれの 分析計算は、パーティション内の現在のローに基づいて行われます。ローで表 現されるウィンドウを使用して限定的な結果を生成するには、ユニークな順序 付けの式を指定する必要があります。

パフォーマンス&チューニング・ガイド

67

Page 83
Image 83
Sybase 12.7 manual Rows, パフォーマンス&チューニング・ガイド