percentile_disc 聚合函数

适用于:check marked yes Databricks SQL check marked yes Databricks Runtime 11.0 及更高版本

使用离散分布模型返回与提供的 sortKeypercentile 对应的值。

语法

percentile_disc ( percentile )
       WITHIN GROUP (ORDER BY sortKey [ASC | DESC] )

还可以使用 OVER 子句将此函数作为窗口函数调用。

参数

  • percentile:介于 0 和 1 之间的数值文本,或每个数值都介于 0 和 1 之间的数值文本的文本数组。
  • sortKey:用于计算百分位数的数值表达式。
  • ASCDESC:(可选)指定是使用升序还是降序计算百分位数。 默认为 ASC

返回

如果 percentile 为数值,则为 DOUBLE;如果 percentile 为数组,则为 DOUBLE 的数组。

聚合函数返回与 sortKeys 组中 percentile 匹配的 sortKey 值。

示例

-- Return the median, 40%-ile and 10%-ile.
> SELECT percentile_disc(array(0.5, 0.4, 0.1)) WITHIN GROUP (ORDER BY col)
    FROM VALUES (0), (1), (2), (10) AS tab(col);
 [1, 1, 0]

-- Return the interpolated median.
> SELECT percentile_disc(0.50) WITHIN GROUP (ORDER BY col)
    FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
 6