APPROXIMATE PERCENTILE_DISC 関数 - Amazon Redshift

APPROXIMATE PERCENTILE_DISC 関数

APPROXIMATE PERCENTILE_DISC は、離散型分散モデルを前提とする逆分散関数です。これは、パーセンタイル値とソート仕様を取得し、特定のセットからエレメントを返します。概算により、関数の実行がはるかに高速になり、相対誤差は約 0.5% と低くなります。

特定の percentile 値に対して、APPROXIMATE PERCENTILE_DISC は分位数要約アルゴリズムを使用して ORDER BY 句の式の離散パーセンタイルを概算します。APPROXIMATE PERCENTILE_DISC は、percentile と同じであるかそれより大きい最少累積分散値 (同じソート仕様を基準とする) を持つ値を返します。

構文

APPROXIMATE PERCENTILE_DISC ( percentile ) WITHIN GROUP (ORDER BY expr)

引数

percentile

0 と 1 の間の数値定数。Null は計算では無視されます。

WITHIN GROUP ( ORDER BY expr)

パーセンタイルをソートして計算するための数値または日付/時間値を指定する句。

戻り値

WITHIN GROUP 句の ORDER BY 式と同じデータ型。

使用に関する注意事項

APPROXIMATE PERCENTILE_DISC ステートメントに GROUP BY 句が含まれている場合、結果セットは制限されます。制限は、ノードタイプとノード数によって異なります。制限を超えると、関数は失敗して以下のエラーを返します。

GROUP BY limit for approximate percentile_disc exceeded.

評価するグループの数が制限の許可数を超える場合は、PERCENTILE_CONT 関数の使用を検討してください。

次の例では、上位 10 日の販売数、販売総額、50 番目のパーセンタイル値を返します。

select top 10 date.caldate, count(totalprice), sum(totalprice), approximate percentile_disc(0.5) within group (order by totalprice) from listing join date on listing.dateid = date.dateid group by date.caldate order by 3 desc; caldate | count | sum | percentile_disc -----------+-------+------------+---------------- 2008-01-07 | 658 | 2081400.00 | 2020.00 2008-01-02 | 614 | 2064840.00 | 2178.00 2008-07-22 | 593 | 1994256.00 | 2214.00 2008-01-26 | 595 | 1993188.00 | 2272.00 2008-02-24 | 655 | 1975345.00 | 2070.00 2008-02-04 | 616 | 1972491.00 | 1995.00 2008-02-14 | 628 | 1971759.00 | 2184.00 2008-09-01 | 600 | 1944976.00 | 2100.00 2008-07-29 | 597 | 1944488.00 | 2106.00 2008-07-23 | 592 | 1943265.00 | 1974.00