- 类别:
/sql-reference/functions-aggregation`(通用)、:doc:/sql-reference/functions-window`
PERCENTILE_DISC¶
根据输入列(在 order_by_expr 中指定)的离散分布返回百分位值。返回值是具有最小 CUME_DIST 值(大于或等于给定百分位数)的行。计算中将忽略 NULL 值。
- 另请参阅:
语法¶
聚合函数
窗口函数
实参¶
percentile要查找的值的百分位数。百分位数必须是介于 0.0 和 1.0 之间的常量。例如,如果要查找第 90 个百分位数的值,请指定 0.9。
order_by_expr用于对值进行排序的表达式(通常为列名)。例如,如果要查找数学 SAT 分数为第 90 个百分位的学生,请指定包含数学 SAT 分数的列。
请注意,这也是从中隐式选择返回值的列。例如,如果您按数学 SAT 分数排序,则结果是数学 SAT 分数之一。不能按一列排序并获取另一列的百分位值。
expr3这是可选表达式,用于将行分组到分区。
返回¶
返回位于指定百分位数的值。
使用说明¶
函数的
percentile实参必须是常量。此函数不支持 DISTINCT。
The function PERCENTILE_CONT interpolates between the two closest values, while the function PERCENTILE_DISC chooses the closest value rather than interpolating.
当此函数作为窗口函数调用时,它不支持:
OVER 子句中的 ORDER BY 子句。
显式窗口框架。
示例¶
以下示例显示了各个组中第 25 个百分位数 (0.25) 处的值:
创建表并使用以下值填充表:
运行查询并显示输出: