【发布时间】:2018-05-13 17:39:03
【问题描述】:
这个查询的结果是什么? (Oracle SQL)
SELECT TO_CHAR(AVG(TEST_SCORE),'999,999.99') FROM SCORES;
如果 TEST_SCORE 的值为 (96, 84, null)
不是 90.00 吗?因为 null 不会改变答案?
谢谢
【问题讨论】:
这个查询的结果是什么? (Oracle SQL)
SELECT TO_CHAR(AVG(TEST_SCORE),'999,999.99') FROM SCORES;
如果 TEST_SCORE 的值为 (96, 84, null)
不是 90.00 吗?因为 null 不会改变答案?
谢谢
【问题讨论】:
NULL 值不会改变平均值。这两个数字的平均值是 90。通常,聚合函数会忽略 NULL 值——包括 min()、max()、avg()、count()(count(*) 除外)和 sum()。
Here 是一个小专家,展示发生了什么。
【讨论】:
试试看
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;
【讨论】: