NTH_VALUE ウィンドウ関数
NTH_VALUE ウィンドウ関数は、ウィンドウの最初の行に関連するウィンドウフレームの指定された行の式の値を返します。
構文
NTH_VALUE (expr, offset) [ IGNORE NULLS | RESPECT NULLS ] OVER ( [ PARTITION BY window_partition ] [ ORDER BY window_ordering frame_clause ] )
引数
- expr
-
関数の対象となる列または式。
- offset
-
式を返すウィンドウの最初の行に関連する行数を決定します。offset は定数または式にすることができ、0 より大きい正の整数である必要があります。
- IGNORE NULLS
-
Amazon Redshift が使用する行を決定するときに null 値をスキップすることを指定するオプションの仕様。IGNORE NULLS がリストされていない場合、Null 値が含まれます。
- RESPECT NULLS
-
Amazon Redshift は使用される行を決定するために null 値を含める必要があることを示します。IGNORE NULLS を指定しない場合、RESPECT NULLS はデフォルトでサポートされます。
- OVER
-
ウィンドウのパーティション、並び順、およびウィンドウフレームを指定します。
- PARTITION BY window_partition
-
OVER 句のグループごとにレコードの範囲を設定します。
- ORDER BY window_ordering
-
各パーティション内の行をソートします。ORDER BY が省略される場合、デフォルトのフレームはパーティションのすべての行から構成されます。
- frame_clause
-
ORDER BY 句が集計関数に使用される場合、明示的なフレーム句が必要です。フレーム句は順序付けた結果の行のセットを含めるか除外して、関数のウィンドウの行のセットを絞り込みます。フレーム句は ROWS キーワードおよび関連する指定子で構成されます。「ウィンドウ関数の構文の概要」を参照してください。
NTH_VALUE ウィンドウ関数は、Amazon Redshift のデータ型を使用する式をサポートします。戻り値の型は expr の型と同じです。
例
次の例は、州のその他の会場の座席数を比較して、カリフォルニア、フロリダ、およびニューヨークで 3 番目に大きい会場の座席数を示しています。
select venuestate, venuename, venueseats,
nth_value(venueseats, 3)
ignore nulls
over(partition by venuestate order by venueseats desc
rows between unbounded preceding and unbounded following)
as third_most_seats
from (select * from venue where venueseats > 0 and
venuestate in('CA', 'FL', 'NY'))
order by venuestate;
venuestate | venuename | venueseats | third_most_seats
------------+--------------------------------+------------+------------------
CA | Qualcomm Stadium | 70561 | 63026
CA | Monster Park | 69843 | 63026
CA | McAfee Coliseum | 63026 | 63026
CA | Dodger Stadium | 56000 | 63026
CA | Angel Stadium of Anaheim | 45050 | 63026
CA | PETCO Park | 42445 | 63026
CA | AT&T Park | 41503 | 63026
CA | Shoreline Amphitheatre | 22000 | 63026
FL | Dolphin Stadium | 74916 | 65647
FL | Jacksonville Municipal Stadium | 73800 | 65647
FL | Raymond James Stadium | 65647 | 65647
FL | Tropicana Field | 36048 | 65647
NY | Ralph Wilson Stadium | 73967 | 20000
NY | Yankee Stadium | 52325 | 20000
NY | Madison Square Garden | 20000 | 20000
(15 rows)