Manual background

統計関数

どのウィンドウ・フレームでも、現在のローが参照ポイントになります。 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 ページ ) を参照してください。

68

Sybase IQ

Page 84
Image 84
Sybase 12.7 manual Sybase IQ