聚合函数和Null值处理
2015-11-09 17:34
162 查看
max,min,sum,avg聚合函数会忽略null值,但不代表聚合函数不返回null值,如果表为空表,或聚合列都是null,则返回null。count 聚合函数忽略null值,如果聚合列都是null或表为空表,则返回0.
共性:Null values are ignored.
示例数据
1,当表中没有任何数据时,聚合函数的返回值
2,当表中存在数据时,聚合函数对null值得处理
2.1, 表中数据只有null
2.2 表中的数据含有null,也含有非null
3,count(*)或count(0)的特殊之处,不检查null值,返回分组的总行数
4,group by子句中,sql server 认为所有的null值是相同的,所有的null值分到一个组中。
5,聚合函数会忽略Null值,聚合不为null的聚合列的聚合值。
共性:Null values are ignored.
示例数据
create table dbo.ftip ( ID int)
1,当表中没有任何数据时,聚合函数的返回值
select max(ft.ID),min(ft.ID),sum(ft.ID),AVG(ft.ID),count(ft.ID) from dbo.ftip ft with(NOLOCK)
2,当表中存在数据时,聚合函数对null值得处理
2.1, 表中数据只有null
insert into dbo.ftip values(null)
select max(ft.ID),min(ft.ID),sum(ft.ID),AVG(ft.ID),count(ft.ID) from dbo.ftip ft with(NOLOCK)
2.2 表中的数据含有null,也含有非null
insert into dbo.ftip values(1)
select max(ft.ID),min(ft.ID),sum(ft.ID),AVG(ft.ID),count(ft.ID) from dbo.ftip ft with(NOLOCK)
3,count(*)或count(0)的特殊之处,不检查null值,返回分组的总行数
select count(ft.ID),count(0),count(*) from dbo.ftip ft with(NOLOCK)
4,group by子句中,sql server 认为所有的null值是相同的,所有的null值分到一个组中。
select ft.ID,count(ft.ID),count(0),count(*),max(ft.ID),min(ft.ID),sum(ft.ID),AVG(ft.ID) from dbo.ftip ft with(NOLOCK) group by ft.ID
5,聚合函数会忽略Null值,聚合不为null的聚合列的聚合值。
insert into dbo.ftip
values(2)
select max(ft.ID),min(ft.ID),sum(ft.ID),AVG(ft.ID),count(ft.ID) from dbo.ftip ft with(NOLOCK)
相关文章推荐
- 琐碎日志
- C语言调用Python函数
- 微信企业号让IOS不要识别数字为电话号码的方法
- MySQL死锁问题实例分析及解决方法
- linux搭建git远程版本库
- select()函数解析
- Win7 登入提示临时漫游档案
- 典型用户
- 实战SQL Server 2005镜像配置全过程
- 微信菜单添加图标
- #ifdef __OBJC__宏定义的作用
- 编程之美-最大公约数问题方法整理
- 小马哥----高仿苹果6p 主板型号LT6071刷机拆机主板图与开机界面图 6571芯片 注意鉴别版本
- 软件测试
- 一个erlang游戏服务端
- java调用url的两种方式
- 第八周--数据结构--计数的模式匹配
- 解决办法之“超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小 ”
- Unity UILabel 输入空格自动换行的解决
- LeetCode OJ:Reverse Bits(旋转bit位)