RATIO_TO_REPORT ウィンドウ関数 - Amazon Redshift

RATIO_TO_REPORT ウィンドウ関数

ウィンドウまたはパーティションの値の合計に対する、ある値の比率を計算します。値を報告する比率は、次の式を使用して特定されます。

value of ratio_expression argument for the current row / sum of ratio_expression argument for the window or partition

以下のデータセットは、この式の使用方法を示しています。

Row# Value Calculation RATIO_TO_REPORT 1 2500 (2500)/(13900) 0.1798 2 2600 (2600)/(13900) 0.1870 3 2800 (2800)/(13900) 0.2014 4 2900 (2900)/(13900) 0.2086 5 3100 (3100)/(13900) 0.2230

戻り値の範囲は、0~1 (0 と 1 を含みます) です。ratio_expression が NULL である場合、戻り値は NULL です。partition_expression 内の値が一意である場合、関数はその値として 1 を返します。

構文

RATIO_TO_REPORT ( ratio_expression ) OVER ( [ PARTITION BY partition_expression ] )

引数

ratio_expression

比率を特定する値を提供する式 (列名など)。式は、数値データ型を含んでいるか、そのデータ型に暗黙的に変換できる必要があります。

ratio_expression で他の分析関数を使用することはできません。

OVER

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

PARTITION BY partition_expression

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

戻り型

FLOAT8

次の例は、WINSALES テーブルを使用しています。WINSALES テーブルを作成する方法については、「ウィンドウ関数例のサンプルテーブル」を参照してください。

次の例では、すべての販売者の数量の合計に対する、各行の販売者の数量の、対レポート比率を計算します。

select sellerid, qty, ratio_to_report(qty) over() from winsales order by sellerid; sellerid qty ratio_to_report -------------------------------------- 1 30 0.13953488372093023 1 10 0.046511627906976744 1 10 0.046511627906976744 2 20 0.09302325581395349 2 20 0.09302325581395349 3 30 0.13953488372093023 3 20 0.09302325581395349 3 15 0.06976744186046512 3 10 0.046511627906976744 4 10 0.046511627906976744 4 40 0.18604651162790697

以下の例では、各販売者の販売数量の比率をパーティションごとに計算します。

select sellerid, qty, ratio_to_report(qty) over(partition by sellerid) from winsales; sellerid qty ratio_to_report ------------------------------------------- 2 20 0.5 2 20 0.5 4 40 0.8 4 10 0.2 1 10 0.2 1 30 0.6 1 10 0.2 3 10 0.13333333333333333 3 15 0.2 3 20 0.26666666666666666 3 30 0.4