Mysql中使用聚合函数对null值的处理
2014-10-29 20:16
309 查看
平时因为对于数据库研习的不深,所以在面试的时候问了一些平常遇到过的问题居然没法很肯定地回答出来,实在让自己很恼怒!
这次让我记忆深刻的一个问题是:
在mysql中使用聚合函数的时候比如avg(t),t是表中一个类型int型的字段,可为null,有三行数据,三行中的数据分别为:10,null,20,请问最后的结果是什么?
我的回答是15,在面试结束之后我尝试了一下结果没错,不过我对于聚集函数对null的处理貌似错了,我认为是聚合函数会将null值看作0,找了一番,博客中都认为是忽略null值,因为没有找到官方的说明文档的说明,只好先认同博客中各位牛人所说的啦!如果有人找到了,麻烦给我个地址,感激不尽!
下面是自己尝试的结果图(注意count函数,这有个特例):
avg函数:
图一
图二
count函数:使用count(*)
图三
图四
count函数:使用count(xx),即使用特定的字段名
图五
图六
经过自己的测试,在mysql 5.6环境下除了count(*)为特例(不忽略null值)外,其余聚集函数确实是忽略null值(如果大牛们都没错的话)!
这次让我记忆深刻的一个问题是:
在mysql中使用聚合函数的时候比如avg(t),t是表中一个类型int型的字段,可为null,有三行数据,三行中的数据分别为:10,null,20,请问最后的结果是什么?
我的回答是15,在面试结束之后我尝试了一下结果没错,不过我对于聚集函数对null的处理貌似错了,我认为是聚合函数会将null值看作0,找了一番,博客中都认为是忽略null值,因为没有找到官方的说明文档的说明,只好先认同博客中各位牛人所说的啦!如果有人找到了,麻烦给我个地址,感激不尽!
下面是自己尝试的结果图(注意count函数,这有个特例):
avg函数:
图一
图二
count函数:使用count(*)
图三
图四
count函数:使用count(xx),即使用特定的字段名
图五
图六
经过自己的测试,在mysql 5.6环境下除了count(*)为特例(不忽略null值)外,其余聚集函数确实是忽略null值(如果大牛们都没错的话)!
相关文章推荐
- MySQL中聚合函数对NULL值处理
- C#使用预处理SQL语句访问MySQL的方法(Parameter)
- asp.net使用Mysql乱码处理
- asp.net使用Mysql乱码处理
- 异常处理:使用UTF-8编码Mysql仍然抛出Incorrect string value异常
- web开发各种乱码问题处理全集 保证解决99%的乱码错误(包括mysql的乱码解决,使用struts2框架的乱码问题)
- MySQL连接8小时未使用连接失效的处理方法
- 使用mysql_real_escape_string报错处理
- MYSQL重装出现could not start the service mysql error:0处理(已验证可以使用)
- MYSQL中使用事务处理
- oracle使用order by排序null值如何处理
- asp.net使用Mysql乱码处理
- asp.net使用Mysql乱码处理
- Mysql:函数之四:和group by配合使用的聚合函数
- asp.net使用Mysql乱码处理
- 取从textarea中存到MYSQL的数据以原格式显示问题以及解决MySQL日期处理和标签的使用
- php中使用mysql_stmt(预处理语句)来处理select查询结果
- Asp.net使用MySQL 乱码处理的破解方案
- MySQL使用Order By排序将NULL值排在最后
- C#使用预处理SQL语句访问MySQL的方法(Parameter)