

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# APPROX PERCENTILE 関数
<a name="approx-percentile"></a>

APPROX PERCENTILE は、データセット全体をソートすることなく、特定の式または列のパーセンタイル値を推定するために使用されます。この関数は、正確なパーセンタイル計算を実行する計算オーバーヘッドなしで、大規模なデータセットの分布をすばやく把握したり、パーセンタイルベースのメトリクスを追跡したりするシナリオに役立ちます。ただし、速度と精度のトレードオフを理解し、ユースケースの特定の要件に基づいて適切なエラー耐性を選択することが重要です。

## 構文
<a name="approx-percentile-syntax"></a>

```
APPROX_PERCENTILE(expr, percentile [, accuracy])
```

## 引数
<a name="approx-percentile-syntax.arguments"></a>

 expr**   
パーセンタイル値を推定する式または列。  
1 つの列、複雑な式、または列の組み合わせを指定できます。

*percentile*  
推定するパーセンタイル値。0～1 の値で表されます。  
たとえば、0.5 は 50 パーセンタイル (中央値) に対応します。

*精度*  
パーセンタイル推定値の望ましい精度を指定するオプションのパラメータ。これは 0～1 の値で、推定値の最大許容相対誤差を表します。`accuracy` 値が小さいほど、より正確ですが推定が遅くなります。このパラメータを指定しない場合、デフォルト値 (通常は約 0.05 または 5%) が使用されます。

## 戻り値
<a name="approx-percentile-syntax.returns"></a>

数値または ANSI 間隔列の col の近似パーセンタイルを返します。これは、順序付けられた col 値 (最小から最大にソート) の最小値であり、col 値の割合が 値より小さいか、その値と等しくならないようにします。

パーセンテージの値は 0.0 から 1.0 の間でなければなりません。精度パラメータ (デフォルト: 10000) は、メモリのコストで近似精度を制御する正の数値リテラルです。

精度の値が大きいほど精度が向上します。 `1.0/accuracy`は近似の相対誤差です。

percentage が配列の場合、割合配列の各値は 0.0 から 1.0 の間である必要があります。この場合、 は指定されたパーセンテージ配列で列列列の近似パーセンタイル配列を返します。

## 例
<a name="approx-percentile-syntax-example"></a>

次のクエリは、`response_time`列の 95 パーセンタイルを推定し、最大相対誤差は 1% (0.01) です。

```
SELECT APPROX_PERCENTILE(response_time, 0.95, 0.01) AS p95_response_time
FROM my_table;
```

次のクエリは、`tab`テーブル内の`col`列の 50 パーセンタイル値、40 パーセンタイル値、および 10 パーセンタイル値を推定します。

```
SELECT approx_percentile(col, array(0.5, 0.4, 0.1), 100) FROM VALUES (0), (1), (2), (10) AS tab(col)
```

次のクエリは、col 列の値の 50 パーセンタイル (中央値) を推定します。

```
SELECT approx_percentile(col, 0.5, 100) FROM VALUES (0), (6), (7), (9), (10) AS tab(col)
```