简单说一下MySQL sum(1) count(1) 区别和联系

简单说一下MySQL sum(1) count(1) 区别和联系

有人说sum(1) 相当于 count(1) ,其实还是有一点点差别;

1. 首先说一下使用过程中注意的点

sum(1)  count(1) 使用过程中都有可能返回值为NULL,并不是统计不到就返回值为0

以下数据表实例

<span>简单说一下MySQL sum(1) count(1) 区别和联系</span>

 <1> 对于sum(1),如果带 where 条件查不到数据,则返回Null

SELECT sum(1) FROM tickets WHERE `order` > 10000 

  <span>简单说一下MySQL sum(1) count(1) 区别和联系</span>

  <2> 对于 count(1) ,如果带 where 且 group by  操作, where条件下无数据,也会返回NUll 

SELECT count(1) FROM tickets WHERE `order` > 10000   GROUP BY priority

  <span>简单说一下MySQL sum(1) count(1) 区别和联系</span>

 都可以用 IFNULL(count(1),0)  优化处理

2.具体说一下 sum(1) count(1)  统计数据上面的差别

<span>简单说一下MySQL sum(1) count(1) 区别和联系</span>

 

 

 

SELECT sum(if(t.`order`=666,1,0)) as sum ,
count(if(t.`order`=666,1,0)) as count,
count(1),
count(0),
sum(1),
sum(0)
FROM tickets t
GROUP BY priority

<span>简单说一下MySQL sum(1) count(1) 区别和联系</span>

   可以看到,count() 其中请携带的if条件没有起作用,在分组后,count(1)  count(0)  统计的都是所有条数, sum可根据 0 1 起到 if()  我们想要的统计效果

 

多多实践总结~

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2566.html原文链接:https://javaforall.net

(0)
上一篇 2020年11月19日 下午8:03
下一篇 2020年11月19日 下午8:04


相关推荐

  • java怎么测试_java中如何使用Junit测试[通俗易懂]

    java怎么测试_java中如何使用Junit测试[通俗易懂]java中如何使用Junit测试一、总结一句话总结:a、单元测试的测试代码在test文件夹下,和源码不在同一个文件夹下b、测试的类方法都以test开头,后面接要测试的类或者方法的名字1、JUnit中什么时候使用assertTrue,assertFalse语句?true通过false通过assertTrue(booleancondition);condition:如果condition结果为t…

    2022年7月8日
    21
  • 全栈JavaScript之路(十八)HTML5 自己定义数据属性「建议收藏」

    全栈JavaScript之路(十八)HTML5 自己定义数据属性

    2022年1月19日
    39
  • Java this 关键字用法

    Java this 关键字用法介绍Java中this关键字的用法,包括在构造方法中this关键字的用法,非在构造方法中this关键字的用法,继承关系下this关键字含义的变化,以及super和this关键字的异同。

    2022年6月25日
    25
  • 敏捷软件开发中的配置管理

    敏捷软件开发中的配置管理敏捷软件开发方法目的是适应需求的快速响应 能够快速的发布和快速的交付使用 在敏捷中的如何实现配置管理 如何通过配置管理来管理敏捷开发过程中的需求 代码 版本等 这是应该是一个专向的课题 敏捷中的配置管理有如下几个方面需要考虑 1 适应敏捷需求的变化 快速的纳入需求版本管理 2 适应频繁的代码构造和频繁的发布 3 能够提供准确的发布版本的内容 4 如何和持续集成结合 做好持续集成的最后的结果输出 提高持续的交付能力

    2025年8月29日
    4
  • ORA-01940: cannot drop a user that is currently connected

    ORA-01940: cannot drop a user that is currently connected

    2021年9月13日
    54
  • hybrid app开发教程_公司员工大会历程分享

    hybrid app开发教程_公司员工大会历程分享关于这个话题,本文并不准备详述移动开发相关的一些通用技术,例如:viewport、rem、flexbox、媒体查询等。这里主要讲述我们的hybrid产品策略、开发流程与规范、性能优化以及我们踩过的坑。而往往就是这些,网上相关的资料相对比较匮乏的,又缺少类似经验文章,所以希望通过此篇文章,跟大家分享一些魅族团队关于hybrid产品开发的经验。产品背景我们希望这一类产品具备比较强大的

    2026年2月13日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号