

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# APPROXIMATE PERCENTILE\_DISC 関数
<a name="r_APPROXIMATE_PERCENTILE_DISC"></a>

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

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

## 構文
<a name="r_APPROXIMATE_PERCENTILE_DISC-synopsis"></a>

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

## 引数
<a name="r_APPROXIMATE_PERCENTILE_DISC-arguments"></a>

 *パーセンタイル*   
0 と 1 の間の数値定数。Null は計算では無視されます。

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

## 戻り値
<a name="r_APPROXIMATE_PERCENTILE_DISC-returns"></a>

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

## 使用に関する注意事項
<a name="r_APPROXIMATE_PERCENTILE_DISC-usage-notes"></a>

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

```
GROUP BY limit for approximate percentile_disc exceeded.
```

評価するグループの数が制限の許可数を超える場合は、[PERCENTILE\_CONT 関数](r_PERCENTILE_CONT.md)の使用を検討してください。

## 例
<a name="r_APPROXIMATE_PERCENTILE_DISC-examples"></a>

次の例では、上位 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
```