mean
聚合函数
适用于: Databricks SQL Databricks Runtime
返回从组的值计算出的平均值。 此函数是 avg 聚合函数的同义词。
语法
mean ( [ALL | DISTINCT] expr ) [FILTER ( WHERE cond ) ]
还可以使用 OVER
子句将此函数作为窗口函数调用。
参数
expr
:一个计算结果为数字的表达式。cond
:一个可选的布尔表达式,可筛选用于聚合的行。
返回
结果类型将根据参数计算:
DECIMAL(p, s)
:结果类型为DECIMAL(p + 4, s + 4)
。 如果达到 DECIMAL 的最大精准率,则位数的增加将受到限制,以避免丢失有效数字。- 年月间隔:结果为
INTERVAL YEAR TO MONTH
。 - 日时间间隔:结果为
INTERVAL DAY TO SECOND
。 - 在所有其他情况下,结果为 DOUBLE。
将忽略组内的 NULL。 如果组为空或仅包含 NULL,则结果为 NULL。
如果指定了 DISTINCT
,则会在删除重复项后计算 mean。
警告
在 Databricks Runtime 中,如果 spark.sql.ansi.enabled 为 false
,则溢出会返回 NULL
而不是错误。
示例
> SELECT mean(col) FROM VALUES (1), (2), (3) AS tab(col);
2.0
> SELECT mean(DISTINCT col) FROM VALUES (1), (1), (2), (NULL) AS tab(col);
1.5
> SELECT mean(col) FROM VALUES (1), (2), (NULL) AS tab(col);
1.5