median 聚合函数

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

返回根据组的值计算出的中值。

语法

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