简单说一下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()  我们想要的统计效果

 

多多实践总结~

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Oracle PL/SQL编程详解之一: PL/SQL 程序设计简介(千里之行,始于足下)「建议收藏」

    Oracle PL/SQL编程详解之一: PL/SQL 程序设计简介(千里之行,始于足下)「建议收藏」作者:EricHu(DB、C/S、B/S、WebService、WCF、PM等)出处:http://www.cnblogs.com/huyong/Q Q:80368704   E-Mail: 80368704@qq.com本博文欢迎大家浏览和转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,在『参考』的文章中,我会表明参考的文章来源,尊重他人版权。若您发现我侵

  • Java基础入门笔记04——方法调用,方法重载,命令行参数,可变参数,多维数组,Arrays类,冒泡排序,矩阵的压缩存储

    Java基础入门笔记04——方法调用,方法重载,命令行参数,可变参数,多维数组,Arrays类,冒泡排序,矩阵的压缩存储JAVA基础04方法System.out.println()——类.对象.方法out是标准输出对象方法是语句的集合,用于执行一个功能——类似C语言中的函数public class Demo01 { public static void main(String[] args) { //main就是一个方法————由java虚拟机调用 //void 是返回类型 int sum = add(1, 2); System.out.pri

  • Java虚拟机简介

    Java虚拟机简介JVM概念● JVM是JavaVirtualMachine(Java虚拟机)的缩写,是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机JVM是属于JRE的,而现在我们安装JDK时也附带安装了JRE(当然也可以单独安装JRE)。● JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码)

  • live555源代码概述「建议收藏」

    live555源代码概述「建议收藏」
    live555源代码概述2010年01月29日星期五13:03liveMedia项目(http://www.live555.com/)的源代码包括四个基本的库,各种测试代码以及MediaServer。四个基本的库分别是:UsageEnvironment&TaskScheduler,groupsock,liveMedia和BasicUsageEnvironment。 

    UsageEnvironment和TaskScheduler类用于事件的调度,实现异步读取事件的

  • mac mysql忘记密码_centos6修改密码

    mac mysql忘记密码_centos6修改密码MacOS下brew安装的mysql重置密码1、进入mysql的bin路径cd/usr/local/Cellar/mysql/8.0.11/bin2、停止mysql服务./mysql.serverstop3、开启mysql安全模式./mysqld_safe–skip-grant-tables&4、进入mysqlmysql-uroot-p5、更改musql密码usemysqlflushprivileges;ALTERUSER’root’@’loca

    2022年10月15日
  • 安卓ExpandableListView的详细使用教程(附代码解析过程)[通俗易懂]

    安卓ExpandableListView的详细使用教程(附代码解析过程)[通俗易懂]ExpandableListView又称可扩展的ListView,它可以实现点击父项展开子项的效果,本文实现了一个比较精美的ExpandableListView。

发表回复

您的电子邮箱地址不会被公开。

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