第 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 |