Sybase 12.7 Home Theater System User Manual


 
統計関数
68 Sybase IQ
どのウィンドウ・フレームでも、現在のローが参照ポイントになります。
SQL/OLAP の構文には、ローベースのウィンドウ・フレームを、現在のローの
前または後にある任意の数のロー ( あるいは現在のローの前および後ろにある
任意の数のロー ) として定義するためのメカニズムが用意されています。
ウィンドウ・フレーム単位の代表的な例を次に示します。
Rows Between Unbounded Preceding and Current Row 各パーティションの
先頭を開始ポイントとし、現在のローを終了ポイントとするウィンドウを
指定します。累積和など、累積的な結果を計算するためのウィンドウを構
築するときによく使用されます。
Rows Between Unbounded Preceding and Unbounded Following 現在のローに
関係なく、パーティション全体についての固定ウィンドウを指定します。
そのため、ウィンドウ集合関数の値は、パーティションのすべてのローで
等しくなります。
Rows Between 1 Preceding and 1 Following 3 つの隣接するロー ( 現在の
ローとその前および後のロー) を含む固定サイズの移動ウィンドウを指定
します。このウィンドウ・フレーム単位を使用して、たとえば 3 日間また
3 か月間の移動平均を計算できます。詳細については、4-3 (66 ペー
) を参照してください。
ウィンドウ値にギャップがあると、ROWS を使用した場合に意味のない
結果が生成されることがあるので注意してください。値セットが連続して
いない場合は、ROWS の代わりに RANGE を使用することを検討してくだ
さい。RANGE に基づくウィンドウ定義では、重複する値を含んだ隣接
ローが自動的に処理され、範囲内にギャップがあるときに他のローが含ま
れません。
注意 移動ウィンドウでは、入力の最初のローの前、および入力の最後の
ローの後ろには、NULL 値を含むローが存在することが想定されます。つ
まり、3 つのローから成る移動ウィンドウの場合は、入力の最後のローを
現在のローとして計算するときに、直前のローと NULL 値が計算に含ま
れます。
Rows Between Current Row and Current Row ウィンドウを現在のローのみ
に制限します。
Rows Between 1 Preceding and 1 Preceding 現在のローの直前のローだけ
を含む単一ローのウィンドウを指定します。この指定を、現在のローのみ
に基づく値を計算する別のウィンドウ関数と組み合わせると、隣接する
ロー同士のデルタ ( 値の差分 ) を簡単に計算することができます。詳細につ
いては、「隣接ロー間のデルタの計算」(72 ページ ) を参照してください。