(1)sum:不为NULL的列值总和 sum(字段值):对该列中不为NULL的值求和,如果列值为0,也会纳入统计。 (2)count:统计满足条件的行数 count(0)=count(1)=count(*) --不忽略null值和空值 co
(1)sum:不为NULL的列值总和
sum(字段值):对该列中不为NULL的值求和,如果列值为0,也会纳入统计。
(2)count:统计满足条件的行数
count(0)=count(1)=count(*) --不忽略null值和空值
count(列名) --忽略null值
count(*):对所有的列进行扫描,包括NULL和重复项,不能和DISTINCT一起使用,只返回表中的行数,它只需要找到属于表的数据块头,计算一下行数,不需要读取数据列中的数据。
执行效率:
(1)列名为主键,count(列名)会比count(1)快
(2)列名不为主键,count(1)会比count(列名)快
(3)如果表多个列并且没有主键,则 count(1) 的执行效率优于 count(*)
(4)如果有主键,则 select count(主键)的执行效率是最优的
(5)如果表只有一个字段,则 select count(*)最优。
count和sum与if的联合使用:
(1)select SUM(IF(字段名=“XXX”,1,0)) where aaa。
语句执行,先根据aaa条件筛选数据,再根据IF统计,如果字段为xxx,那该条记录累加1,否则累加0。
(2)select count(IF(字段名= “XXX”,1,0)) where aaa
语句执行,先根据aaa条件筛选,在根据IF统计,如果字段为XXX,那么就累加count(1),但是如果不满足就是count(0),其实count(1)和count(0)是一个意思,最终不管字段名为什么,统计数都是一样的。
(3)修改:select count(IF(字段名= “XXX”,1,null)) where aaa。符合条件就累加1,不符合条件就不累加。
来源地址:https://blog.csdn.net/qq_33531400/article/details/129832167
--结束END--
本文标题: SQL count和sum的使用
本文链接: https://www.lsjlt.com/news/411653.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-16
2024-05-16
2024-05-16
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0