- カテゴリ:
ウィンドウ関数 (ランク関連、ウィンドウフレーム)
NTH_VALUE¶
値が順序付けられたグループ内のn番目の値(最大1000)を返します。
- こちらもご参照ください:
構文¶
NTH_VALUE( <expr> , n ) [ FROM { FIRST | LAST } ] [ { IGNORE | RESPECT } NULLS ]
OVER ( [ PARTITION BY <expr1> ] ORDER BY <expr2> [ { ASC | DESC } ] [ <window_frame> ] )
ウィンドウフレーム
構文の詳細については、 ウィンドウフレームの構文と使用法 をご参照ください。
使用上の注意¶
入力値
n
は1000を超えることはできません。FROM { FIRST | LAST }
が指定されていない場合、デフォルトはFIRST
です。つまり、順序付きリストの先頭からの方向です。{ IGNORE | RESPECT } NULLS
が指定されていない場合、デフォルトはRESPECT NULLS
です。つまり、式に NULL 値が含まれ、式のn番目の値である場合、 NULL 値が返されます。NTH_VALUE はランク関連の関数であるため、次の要素で構成されるウィンドウを指定する必要があります。
PARTITION BY <expr1>
副次句(オプション)。ORDER BY <expr2>
オプションのウィンドウフレーム
を含む副次句(必須)。サポートされている追加の順序付けオプション(並べ替え順序、 NULL 値の順序付けなど)の詳細については、 ORDER BY クエリ構成をご参照ください。
オプションの
ウィンドウフレーム
(累積またはスライド)は、関数が計算されるウィンドウ内の行のサブセットを指定します。ウィンドウフレーム
が指定されていない場合、デフォルトはウィンドウ全体です。ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
これは、ウィンドウフレームに次のデフォルトを指定する ANSI 標準とは異なります。
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
構文や例を含むウィンドウフレームの詳細については、 ウィンドウフレームの構文と使用法 をご参照ください。
例¶
SELECT
column1,
column2,
NTH_VALUE(column2, 2) OVER (PARTITION BY column1 ORDER BY column2) AS column2_2nd
FROM VALUES
(1, 10), (1, 11), (1, 12),
(2, 20), (2, 21), (2, 22);
+---------+---------+-------------+
| COLUMN1 | COLUMN2 | COLUMN2_2ND |
|---------+---------+-------------|
| 1 | 10 | 11 |
| 1 | 11 | 11 |
| 1 | 12 | 11 |
| 2 | 20 | 21 |
| 2 | 21 | 21 |
| 2 | 22 | 21 |
+---------+---------+-------------+