T-SQL中聚合函数对空值(NULL)的处理

时间:2023-01-21 11:40:11

聚合函数对一组值执行计算,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空值。聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用。

所有聚合函数均为确定性函数。这表示任何时候使用一组特定的输入值调用聚合函数,所返回的值都是相同的。有关函数确定性的详细信息,请参阅确定性函数和不确定性函数OVER 子句可以跟在除 CHECKSUM 以外的所有聚合函数的后面。

聚合函数只能在以下位置作为表达式使用:

  • SELECT 语句的选择列表(子查询或外部查询)。
  • COMPUTE 或 COMPUTE BY 子句。
  • HAVING 子句。

Transact-SQL 提供下列聚合函数:

AVG

MIN

CHECKSUM_AGG

SUM

COUNT

STDEV

COUNT_BIG

STDEVP

GROUPING

VAR

MAX

VARP

特别注意一下,如果没有配合GROUP语句,那么除了COUNT(*)之外,其他的聚合函数都是忽略空值的,下面看一个例子

我有一个orders表,下面是一个截图

T-SQL中聚合函数对空值(NULL)的处理

假设我们通过下面语句去计数

SELECT COUNT(customerid) FROM Orders

那么返回的结果是6,而不是7

 

但是如果用

SELECT COUNT(customerid) FROM Orders

则可以返回7