适用于: Databricks SQL
Databricks Runtime
返回位于组中指定 expr
处的 percentage
的确切百分位值。
percentile ( [ALL | DISTINCT] expr, percentage [, frequency] ) [FILTER ( WHERE cond ) ]
expr
:一个计算结果为数字的表达式。percentage
:介于 0 和 1 之间的数值表达式或ARRAY
数值表达式,每个表达式介于 0 和 1 之间。frequency
:一个大于 0 的可选整数文本。cond
:一个可选的布尔表达式,可筛选用于聚合的行。
如果 DOUBLE
是数值,则为 percentage
;如果 ARRAY<DOUBLE>
是 percentage
,则为 ARRAY
。
Frequency 描述 expr
必须统计的次数。 如果某个特定值的频率 (frequency) 为 10,则相当于该值在窗口中以频率 1 出现 10 次。
默认频率为 1。
如果指定了 DISTINCT
,则该函数只对一组唯一的 expr
值运行。
> SELECT percentile(col, 0.3) FROM VALUES (0), (10), (10) AS tab(col);
6.0
> SELECT percentile(DISTINCT col, 0.3) FROM VALUES (0), (10), (10) AS tab(col);
3.0
> SELECT percentile(col, 0.3, freq) FROM VALUES (0, 1), (10, 2) AS tab(col, freq);
6.0
> SELECT percentile(col, array(0.25, 0.75)) FROM VALUES (0), (10) AS tab(col);
[2.5,7.5]