Sybase 12.7 Home Theater System User Manual


 
統計関数
70 Sybase IQ
平均値は次のようにして計算されています。
ロー [1] = (10 + 50 + 100)/3
ロー [2] = (50+ 100 + 120)/3
ロー [3] = (100 + 120 + 500)/3
ロー [4] = (120 + 500 + NULL)/3
ロー [5] = (500 + NULL + NULL)/3
結果セット内の以降のすべてのパーティション ( たとえば BC など ) につい
ても、同様の計算が実行されます。
現在のウィンドウにローが含まれていない場合、COUNT 以外のケースでは、
結果は NULL になります。
RANGE
範囲ベースのウィンドウ・フレーム 前述のローベースのウィンドウ・フレーム
例では、さまざまなローベースのウィンドウ・フレーム定義の中から 1 つを紹
介しました。SQL/OLAP 構文では、また別の種類のウィンドウ・フレームとし
て、物理的なローのシーケンスではなく、値ベース ( または範囲ベース )
ロー・セットに基づいて境界を定義する方法が用意されています。
値ベースのウィンドウ・フレームは、ウィンドウ・パーティション内で、特定
の範囲の数値を含んでいるローを定義します。OLAP 関数の ORDER BY 句で
は、範囲指定を適用する数値カラムを定義します。このカラムの現在のローの
値が、範囲指定の基準となります。範囲指定ではロー指定と同じ構文を使用し
ますが、構文の解釈の仕方は異なります。
ウィンドウ・フレーム単位 RANGE では、特定の順序付けカラムについて現在
のローを基準とする値範囲を指定し、その範囲内の値を持つローを検索して、
ウィンドウ・フレームに含めます。これは論理的なオフセットに基づくウィン
ドウ・フレームと呼ばれ、“3 preceding” などの定数を指定することも、評価結
果が数値定数となる任意の式を指定することもできます。RANGE に基づく
ウィンドウを使用するときは、ORDER BY 句に数値式を 1 つだけ指定します。
たとえば、次のように指定すると、year カラムに現在のローの前後数年に当た
る値を含んでいるロー・セットをフレームとして定義できます。
ORDER BY year ASC range BETWEEN CURRENT ROW and 1 PRECEDING
このクエリ例の 1 PRECEDING という部分は、現在のローの year 値から 1 を減
算することを意味しています。