

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 百分位数函数
<a name="percentile"></a>

PERCENTILE 函数用于计算精确的百分位数值，方法是首先对`col`列中的值进行排序，然后在指定值处找到值。`percentage`

当您需要计算精确的百分位数值并且您的用例可以接受计算成本时，PERCENTILE 函数非常有用。它提供的结果比 APPROX\_PERCENTILE 函数更准确，但速度可能会更慢，特别是对于大型数据集。

相比之下，APPROX\_PERCENTILE 函数是一种更有效的替代方案，它可以提供具有指定误差容限的百分位数值的估计值，因此更适合速度优先级高于绝对精度的场景。

## 语法
<a name="percentile-syntax"></a>

```
percentile(col, percentage [, frequency])
```

## Arguments
<a name="percentile-arguments"></a>

 *col*   
要计算其百分位数值的表达式或列。

*百分比*  
要计算的百分位数值，表示为 0 到 1 之间的值。  
例如，0.5 将对应于第 50 个百分位数（中位数）。

*频率*  
一个可选参数，用于指定`col`列中每个值的频率或权重。如果提供，则该函数将根据每个值的频率计算百分位数。

## 返回值
<a name="percentile-returns"></a>

以给定百分比返回数字或 ANSI 间隔列 col 的精确百分位数值。

百分比的值必须介于 0.0 和 1.0 之间。

频率值应为正积分

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

以下查询查找大于或等于`col`列中值的 30% 的值。由于值为 0 和 10，因此第 30 个百分位数为 3.0，因为该值大于或等于数据的 30%。

```
SELECT percentile(col, 0.3) FROM VALUES (0), (10) AS tab(col);
 3.0
```