Sybase IQ 12.7 User Manual

Page of 212
 4 章    OLAP の使用
パフォーマンス&チューニング・ガイド
69
ローベースのウィンドウ・フレーム 
 の例では、ロー [1] ~ [5] は 1 つのパー
ティションを表しています。それぞれのローは、
OLAP のウィンドウ・フレー
ムが前にスライドするにつれて現在のローになります。このウィンドウ・フ
レームは
 Between Current Row And 2 Following として定義されているため、各
フレームには、最大で
 3 つ、最小で 1 つのローが含まれます。フレームがパー
ティションの終わりに到達したときは、現在のローだけがフレームに含まれま
す。網掛けの部分は、
 の各ステップでフレームから除外されているロー
を表しています。
 4-4: ローベースのウィンドウ・フレーム
のウィンドウ・フレームは、次のような規則で機能しています。
ロー
 [1] が現在のローであるときは、ロー [4] および [5] が除外される。
ロー
 [2] が現在のローであるときは、ロー [5] および [1] が除外される。
ロー
 [3] が現在のローであるときは、ロー [1] および [2] が除外される。
ロー
 [4] が現在のローであるときは、ロー [1]、[2]、[3] が除外される。
ロー
 [5] が現在のローであるときは、ロー [1]、[2]、[3]、[4] が除外される。
次の図では、この規則を具体的な値セットに適用し、
OLAP の AVG 関数を使
用して各ローの計算を行っています。スライド計算により、現在のローの位置
に応じて、
3 つまたはそれ以下のローを範囲として移動平均を算出しています。
次のクエリは、移動ウィンドウの定義の例を示しています。
SELECT dimension, measure,
AVG(measure) OVER(partition BY dimension
ORDER BY measure 
ROWS BETWEEN CURRENT ROW and 2 FOLLOWING) 
AS olap_avg
FROM ...