MySQL 中 Sum(1)与Count(1)的区别和联系
MySQL中count和sum使用
count
- COUNT()函数里面的参数是列名的的时候,那么会计算有值项的次数。(NULL 不计入, 但是''值计入)
- COUNT(*)可以计算出行数,包括null ,COUNT(1)也可以计算出行数,1在这里代表一行
- COUNT(条件表达式),不管记录是否满足条件表达式,只要非NULL就加1 ,所以一般都count(id=1 or null)
sum
- sum()参数是列名的时候,计算列名的值的相加,不是统计有值项的总数
- sum(id=2) 当参数是表达式的时候,统计满足条件的行数
注:
- 上面id指列名,=后面的代表值
本文参考:MySQL中sum和count用法总结,如需转载请注明出处,
MySQL中count和sum使用 - lin_zone - 博客园
mysql sum(1)_简单说一下MySQL sum(1) count(1) 区别和联系
简单说一下MySQL sum(1) count(1) 区别和联系 - 豆豆2018 - 博客园
有人说sum(1) 相当于 count(1) ,其实还是有一点点差别;
1. 首先说一下使用过程中注意的点
sum(1) count(1) 使用过程中都有可能返回值为NULL,并不是统计不到就返回值为0
以下数据表实例
<1> 对于sum(1),如果带 where 条件查不到数据,则返回Null
1 |
|
<2> 对于 count(1) ,如果带 where 且 group by 操作, where条件下无数据,也会返回NUll
1 |
|
都可以用 IFNULL(count(1),0) 优化处理
2.具体说一下 sum(1) count(1) 统计数据上面的差别
1 2 3 4 5 6 7 8 |
|
可以看到,count() 其中请携带的if条件没有起作用,在分组后,count(1) count(0) 统计的都是所有条数, sum可根据 0 1 起到 if() 我们想要的统计效果
多多实践总结~