PERCENT_RANK ウィンドウ関数 - Amazon Redshift

PERCENT_RANK ウィンドウ関数

指定の行のパーセントランクを計算します。パーセントランクは、以下の式を使用して特定されます。

(x - 1) / (the number of rows in the window or partition - 1)

ここで、x は現在の行のランクです。以下のデータセットは、この式の使用方法を示しています。

Row# Value Rank Calculation PERCENT_RANK 1 15 1 (1-1)/(7-1) 0.0000 2 20 2 (2-1)/(7-1) 0.1666 3 20 2 (2-1)/(7-1) 0.1666 4 20 2 (2-1)/(7-1) 0.1666 5 30 5 (5-1)/(7-1) 0.6666 6 30 5 (5-1)/(7-1) 0.6666 7 40 7 (7-1)/(7-1) 1.0000

戻り値の範囲は、0~1 (0 と 1 を含みます) です。どのセットも、最初の行の PERCENT_RANK は 0 になります。

構文

PERCENT_RANK () OVER ( [ PARTITION BY partition_expression ] [ ORDER BY order_list ] )

引数

( )

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

OVER

ウィンドウのパーティションを指定する句。OVER 句にウィンドウフレーム仕様を含めることはできません。

PARTITION BY partition_expression

省略可能。OVER 句の各グループのレコードの範囲を設定する式。

ORDER BY order_list

省略可能。パーセントランクを計算する式。式は、数値データ型を含んでいるか、そのデータ型に暗黙的に変換できる必要があります。ORDER BY を省略した場合、すべての行について戻り値は 0 です。

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

戻り型

FLOAT8

以下の例では、各販売者の販売数量のパーセントランクを計算します。

select sellerid, qty, percent_rank() over (partition by sellerid order by qty) from winsales; sellerid qty percent_rank ---------------------------------------- 1 10.00 0.0 1 10.64 0.5 1 30.37 1.0 3 10.04 0.0 3 15.15 0.33 3 20.75 0.67 3 30.55 1.0 2 20.09 0.0 2 20.12 1.0 4 10.12 0.0 4 40.23 1.0

WINSALES テーブルの説明については、「ウィンドウ関数の概要の例」を参照してください。