Percentile_Disc (Azure 流分析)

基于整个数据集计算百分位数。 对于给定的百分位值 P,PERCENTILE_DISC对 ORDER BY 子句中表达式的值进行排序,并返回大于或等于 P 的最小累积距离内的值。例如,PERCENTILE_DISC (0.5) 将计算第 50 百分位 (即表达式的中值) 。 PERCENTILE_DISC根据数据值的离散分布计算百分位数;结果等于输入数据中的特定值。

语法

PERCENTILE_DISC ( numeric_literal )
       OVER ( ORDER_BY order_by_expression [ ASC | DESC ])

参数

numeric_literal

要计算的百分位数。 该值的范围必须介于 0 和 1 之间。

over ( ORDER by order_by_expression [ ASC |DESC] )

指定要排序和计算百分位数的数值列表。 仅允许一个 order_by_expression 。 该表达式计算结果必须为数值类型。 不允许其他数据类型。 默认的排序顺序为升序。

返回类型

返回类型由 order_by_expression 类型决定 。

示例

以下示例使用 PERCENTILE_DISC 查找跨区域服务可用性的第 95 百分位。 请注意, 函数将始终返回输入数据集内的百分位数。

SELECT PERCENTILE_DISC(0.95) OVER (ORDER BY serviceAvailability)
FROM testInput
GROUP BY SlidingWindow(hours, 1)

输入示例:

区域 ServiceAvailability
A 0.98
B 0.93
C 0.78
D 0.99
E 0.89

示例输出:

0.99