ROW_NUMBER ウィンドウ関数 - Amazon Redshift

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ROW_NUMBER ウィンドウ関数

OVER 句の ORDER BY 式に基づいて、行グループ内における (1 からカウントした) 現在の行の序数が決まります。オプションの PARTITION BY 句がある場合、序数は行グループごとにリセットされます。ORDER BY 式で同じ値を持つ行には、確定的でない方法で異なる行番号が割り当てられます。

Syntax

ROW_NUMBER () OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list ] )

Arguments

( )

この関数は引数を受け取りませんが、空のかっこは必要です。

OVER

ROW_NUMBER 関数のウィンドウ句。

PARTITION BY expr_list

省略可能。ROW_NUMBER 関数を定義する 1 つ以上の式。

ORDER BY order_list

省略可能。行番号の基になる列を定義する式。PARTITION BY が指定されていない場合、ORDER BY はテーブル全体を使用します。

ORDER BY で一意の順序付けが行われない、または省略した場合、行の順序は不確定になります。詳細については、「ウィンドウ関数用データの一意の並び順」を参照してください。

戻り型

BIGINT

Examples

次の例では、SELLERID によってテーブルをパーティション化し、QTY によって各パーティションを (昇順で) 順序付けし、各行に行番号を割り当てます。結果はウィンドウ関数の結果が提供された後にソートされます。

select salesid, sellerid, qty, row_number() over (partition by sellerid order by qty asc) as row from winsales order by 2,4; salesid | sellerid | qty | row ---------+----------+-----+----- 10006 | 1 | 10 | 1 10001 | 1 | 10 | 2 10005 | 1 | 30 | 3 20001 | 2 | 20 | 1 20002 | 2 | 20 | 2 30001 | 3 | 10 | 1 30003 | 3 | 15 | 2 30004 | 3 | 20 | 3 30007 | 3 | 30 | 4 40005 | 4 | 10 | 1 40001 | 4 | 40 | 2 (11 rows)

WINSALES テーブルの説明については、「Overview example for window functions」を参照してください。