数据库中avg函数求平均值空值参与统计吗?

先说结论:avg函数求平均值时,空值不参与统计。

示例数据:

with tmp as (
select 1 as id ,100 as value union all 
select 2 as id ,null as value union all 
select 3 as id ,200 as value 
)
select 
avg(value)
,sum(value)
,count(value)
,count(1)
from tmp

执行结果:

`avg(value)`    `sum(value)`    `count(value)`    `count(1)`
150.0000    300    2    3

可以看到:

  • avg函数 空值是不参与计算的。
  • count(字段名) 空值也是不参与的。
  • count(1) 空值是参与计数的。

而 avg实际上等价于:
avg(字段名) = sum(字段名)/count(字段名)

结论:
avg函数求平均值时,空值不参与统计。

posted @ 2024-01-18 10:12  葵花牌、阳光  阅读(308)  评论(0)    收藏  举报