翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 テーブルの説明については、「ウィンドウ関数例のサンプルテーブル」を参照してください。