median
聚合函数
适用于: Databricks SQL Databricks Runtime 11.3 LTS 及更高版本
返回根据组的值计算出的中值。
语法
median ( [ALL | DISTINCT] expr ) [FILTER ( WHERE cond ) ]
还可以使用 OVER
子句将此函数作为窗口函数调用。
参数
expr
:一个计算结果为数字或间隔的表达式。cond
:一个可选的布尔表达式,可筛选用于聚合的行。
返回
下面解释了如何计算结果类型:
- 年月间隔:结果为
INTERVAL YEAR TO MONTH
。 - 日时间间隔:结果为
INTERVAL DAY TO SECOND
。 - 在所有其他情况下,结果为 DOUBLE。
将忽略组内的 NULL。 如果组为空或仅包含 null,则结果为 NULL
。
如果指定了 DISTINCT
,则移除重复项,然后计算中值。
此函数是 percentile_cont(0.5) WITHIN GROUP (ORDER BY expr) 的同义词。
示例
> SELECT median(col) FROM VALUES (1), (2), (2), (3), (4), (NULL) AS tab(col);
2.0
> SELECT median(DISTINCT col) FROM VALUES (1), (2), (2), (3), (4), (NULL) AS tab(col);
2.5
> SELECT median(col) FROM VALUES (INTERVAL '1' YEAR), (INTERVAL '2' YEAR) AS tab(col);
1-6