null值会改变平均值吗?

时间:2017-11-29 21:54:39

标签: sql oracle null average

此查询的结果是什么? (Oracle SQL)

   SELECT TO_CHAR(AVG(TEST_SCORE),'999,999.99') FROM SCORES; 

如果TEST_SCORE的值是(96,84,null)

不是90.00?因为null不会改变答案吗?

谢谢

2 个答案:

答案 0 :(得分:3)

NULL值不会改变平均值。这两个数字的平均值为90.通常,聚合函数忽略NULL个值 - 包括min()max()avg()count()(除{ {1}})和count(*)

Here有点rextester显示会发生什么。

答案 1 :(得分:3)

试一试

with SCORES as (
  select 96 test_score from dual
  union all
  select 84 from dual
  union all
  select null from dual
)
SELECT TO_CHAR(AVG(TEST_SCORE),'999,999.99') FROM SCORES;