Hitachi

Hitachi Advanced Data Binder SQLリファレンス


7.23.3 ウィンドウ枠の設定規則(ウィンドウ枠句にRANGEを指定した場合)

ウィンドウ枠句にRANGEを指定した場合,ウィンドウ枠の前方の境界と後方の境界は,次のように決まります。

〈この項の構成〉

(1) ウィンドウ枠の前方の境界

(a) 開始指定ウィンドウ枠境界にUNBOUNDED PRECEDINGを指定した場合

ウィンドウ(区画)の先頭行が,ウィンドウ枠の先頭行(前方の境界)になります。

[図データ]

(b) 開始指定ウィンドウ枠境界にCURRENT ROWを指定した場合

現在行のソートキーの値と同じソートキーの値を持つ最初の行が,ウィンドウ枠の先頭行(前方の境界)になります。

[図データ]

(c) 開始指定ウィンドウ枠境界に「ウィンドウ枠値指定 PRECEDING」または「ウィンドウ枠値指定 FOLLOWING」を指定した場合

ウィンドウ順序句に指定したソートキーの値によって,ウィンドウ枠の前方の境界が決まります。

■現在行のソートキーの値がナル値の場合

ウィンドウ枠値指定 PRECEDING」および「ウィンドウ枠値指定 FOLLOWING」のどちらを開始指定ウィンドウ枠境界に指定しても,ウィンドウ枠の先頭行(前方の境界)は同じになります。

ソートキーの値がナル値である最初の行がウィンドウ枠の先頭行(前方の境界)になります。

[図データ]

■現在行のソートキーの値がナル値でない場合

ウィンドウ枠の前方の境界は,次のように決まります。

  • ウィンドウ枠境界に「ウィンドウ枠値指定 PRECEDING」を指定した場合

    ソート指定の順序付け指定がASC(昇順)の場合は,ソートキーの値が計算式Aの値以上となる最初の行が,ウィンドウ枠の先頭行(前方の境界)になります。

    ソート指定の順序付け指定がDESC(降順)の場合は,ソートキーの値が計算式Aの値以下となる最初の行が,ウィンドウ枠の先頭行(前方の境界)になります。

    <計算式A>

    ・ソート指定の順序付け指定がASC(昇順)の場合:現在行のソートキーの値ウィンドウ枠値指定

    ・ソート指定の順序付け指定がDESC(降順)の場合:現在行のソートキーの値ウィンドウ枠値指定

    [図データ]

    計算式Aの値が,結果のデータ型で表現できない値になった場合は,結果のデータ型で表現できる最大または最小の値と仮定して,ウィンドウ枠が決定されます。

  • ウィンドウ枠境界に「ウィンドウ枠値指定 FOLLOWING」を指定した場合

    ソート指定の順序付け指定がASC(昇順)の場合は,ソートキーの値が計算式Bの値以上となる最初の行が,ウィンドウ枠の先頭行(前方の境界)になります。

    ソート指定の順序付け指定がDESC(降順)の場合は,ソートキーの値が計算式Bの値以下となる最初の行が,ウィンドウ枠の先頭行(前方の境界)になります。

    <計算式B>

    ・ソート指定の順序付け指定がASC(昇順)の場合:現在行のソートキーの値ウィンドウ枠値指定

    ・ソート指定の順序付け指定がDESC(降順)の場合:現在行のソートキーの値ウィンドウ枠値指定

    [図データ]

    計算式Bの値が,結果のデータ型で表現できない値になった場合は,結果のデータ型で表現できる最大または最小の値と仮定して,ウィンドウ枠が決定されます。

(2) ウィンドウ枠の後方の境界

(a) 終了指定ウィンドウ枠境界にUNBOUNDED FOLLOWINGを指定した場合

ウィンドウ(区画)の最終行が,ウィンドウ枠の最終行(後方の境界)になります。

[図データ]

(b) 終了指定ウィンドウ枠境界にCURRENT ROWを指定した場合

現在行のソートキーの値と同じソートキーの値を持つ最後の行が,ウィンドウ枠の最終行(後方の境界)になります。

[図データ]

(c) 終了指定ウィンドウ枠境界に「ウィンドウ枠値指定 PRECEDING」または「ウィンドウ枠値指定 FOLLOWING」を指定した場合

ウィンドウ順序句に指定したソートキーの値によって,ウィンドウ枠の後方の境界が決まります。

■現在行のソートキーの値がナル値の場合

ウィンドウ枠値指定 PRECEDING」および「ウィンドウ枠値指定 FOLLOWING」のどちらを終了指定ウィンドウ枠境界に指定しても,ウィンドウ枠の最終行(後方の境界)は同じになります。

ソートキーの値がナル値である最後の行がウィンドウ枠の最終行(後方の境界)になります。

[図データ]

■現在行のソートキーの値がナル値でない場合

ウィンドウ枠の前方の境界は,次のように決まります。

  • ウィンドウ枠境界に「ウィンドウ枠値指定 PRECEDING」を指定した場合

    ソート指定の順序付け指定がASC(昇順)の場合は,ソートキーの値が計算式Aの値以下となる最後の行が,ウィンドウ枠の最終行(後方の境界)になります。

    ソート指定の順序付け指定がDESC(降順)の場合は,ソートキーの値が計算式Aの値以上となる最後の行が,ウィンドウ枠の最終行(後方の境界)になります。

    <計算式A>

    ・ソート指定の順序付け指定がASC(昇順)の場合:現在行のソートキーの値ウィンドウ枠値指定

    ・ソート指定の順序付け指定がDESC(降順)の場合:現在行のソートキーの値ウィンドウ枠値指定

    [図データ]

    計算式Aの値が,結果のデータ型で表現できない値になった場合は,結果のデータ型で表現できる最大または最小の値と仮定して,ウィンドウ枠が決定されます。

  • ウィンドウ枠境界に「ウィンドウ枠値指定 FOLLOWING」を指定した場合

    ソート指定の順序付け指定がASC(昇順)の場合は,ソートキーの値が計算式Bの値以下となる最後の行が,ウィンドウ枠の最終行(後方の境界)になります。

    ソート指定の順序付け指定がDESC(降順)の場合は,ソートキーの値が計算式Bの値以上となる最後の行が,ウィンドウ枠の最終行(後方の境界)になります。

    <計算式B>

    ・ソート指定の順序付け指定がASC(昇順)の場合:現在行のソートキーの値ウィンドウ枠値指定

    ・ソート指定の順序付け指定がDESC(降順)の場合:現在行のソートキーの値ウィンドウ枠値指定

    [図データ]

    計算式Bの値が,結果のデータ型で表現できない値になった場合は,結果のデータ型で表現できる最大または最小の値と仮定して,ウィンドウ枠が決定されます。