汇总函数为空

时间:2019-12-03 16:36:30

标签: sql

https://modern-sql.com/concept/null#aggregates说:

  

考虑一下如何通过表达式传播null   并且在汇总之前删除空值会影响   以下表达式:

     

SUM(a + b)

     

SUM(a)+ SUM(b)

我不太确定我是否理解它们的含义以及有什么区别。

我得到的NULL聚合值可能为0。但是为什么这两个语句之间存在差异?

1 个答案:

答案 0 :(得分:1)

请考虑以下数据:

a     b
1     NULL
NULL  2
3     3

表达式sum(a + b)将返回6。为什么?归纳为:

1 + NULL  --> NULL
NULL + 2  --> NULL
3 + 3     --> 6

这些值的sum()是6。

如果您进行计算sum(a) + sum(b),则NULL值将合并到每一列中,您将得到(1 + 3) + (2 + 3)-> 9。

Here是db <>小提琴,说明了这种效果。

相关问题