ウィンドウ・フレーム

4 OLAP の使用

OLAP のランク付け関数には順序の指定が必須であり、ランキング値の基準は、 ランク付け関数の引数ではなく ORDER BY 句で指定します。OLAP の集合関 数では、通常は ORDER BY 句の指定は必須ではありませんが、ウィンドウ・ フレームを定義するときには必須とされています (「ウィンドウ・フレーム」 (65 ページ ) を参照してください )。これは、各フレームの適切な集合値を計算 する前に、パーティション内のローをソートしなければならないためです。

この ORDER BY 句には、昇順および降順のソートを定義するためのセマン ティックと、NULL 値の取り扱いに関する規則を指定します。OLAP 関数は、 デフォルトでは昇順(最も小さい値が1 番目にランク付けされる) を使用します。

これは SELECT 文の最後に指定する ORDER BY 句のデフォルト動作と同じ ですが、連続的な計算を行う場合にはわかりにくいかもしれません。OLAP の 計算では、降順 ( 最も大きい値が 1 番目にランク付けされる ) でのソートが必 要になることがよくあります。この要件を満たすには、ORDER BY 句に明示 的に DESC キーワードを指定する必要があります。

注意 ランク付け関数は、ソートされた入力のみを扱うように定義されている ため、「ウィンドウ順序句」の指定を必要とします。「クエリ指定」の「order by 句」と同様に、デフォルトのソート順序は昇順です。

「ウィンドウ・フレーム単位」でRANGE を使用する場合も、「ウィンドウ順序句」 を指定する必要があります。RANGE の場合は、「ウィンドウ順序句」に1 つの式 のみを指定します。「ウィンドウ・フレーム」(65 ページ ) を参照してください。

ウィンドウ・フレーム

ランク付け関数を除く OLAP 集合関数では、ウィンドウ・フレーム句を使用し てウィンドウ・フレームを定義することができます。ウィンドウ・フレーム句 には、現在のローを基準としてウィンドウの開始位置と終了位置を指定します。

<WINDOW FRAME CLAUSE> ::=

<WINDOW FRAME UNIT> <WINDOW FRAME EXTENT>

これにより、パーティション全体の固定的な内容ではなく、移動するフレーム の内容に対して OLAP 関数を計算できます。定義にもよりますが、パーティ ションには開始ローと終了ローがあり、ウィンドウ・フレームは開始ポイント からパーティションの終了位置に向けてスライドします。

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

65

Page 81
Image 81
Sybase 12.7 manual ウィンドウ・フレーム, パフォーマンス&チューニング・ガイド, <Window Frame Clause> ::=