总和为空值?

  • 本文关键字:空值 sql null sum
  • 更新时间 :
  • 英文 :


>查询对具有 10 个元组的表的单个列执行总和聚合。如果正好有一个元组在该列上具有 NULL 值,则会发生以下哪项情况?

  1. 查询将返回 NULL。
  2. 查询将返回其余 9 个值的总和。
  3. 查询将引发异常。

这会是3吗?

聚合函数忽略空值。这就是他们行为的定义。

所以你的问题的答案是:2(

您可以自己轻松测试:

create table test_null(value integer);
insert into test_null
values (1),(1),(1),(1),(1),(1),(1),(1),(1),(null);
select sum(value)
from test_null;

返回

sum
---
9

当您使用avg()聚合函数时,"忽略"部分更为明显。上述测试数据的结果是 1,而不是人们想象的 0.9。这是因为聚合忽略具有 null 值的行,因此平均值计算为 9/9。

select avg(value)
from test_null;

相当于:

select avg(value)
from test_null
WHERE value IS NOT NULL;

在线示例:http://rextester.com/QQREJS70393

相关内容

  • 没有找到相关文章

最新更新