NTH_VALUE ウィンドウ関数 - Amazon Redshift

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)