文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SQL count和sum的使用

2023-09-18 11:43

关注

(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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯