count 有条件 mysql_【笔记】Mysql中使用count加条件统计
前言mysql
最近发如今处理Mysql问题时,count()函数频繁上镜,经常出如今分组统计的情景下,可是有时候并非使用group by分好组就能够直接统计了,好比说一个常见的需求,统计每一个班级男生所占的比例,这种状况通常会按照班级分组,可是分组内不但要统计班级的人数,还要统计男生的人数,也就是说统计是有条件的,以前确实没有考虑过怎样实心,后来查询了资料,总结在这里,方便往后查找使用。sql
Mysql中count()函数的通常用法是统计字段非空的记录数,因此能够利用这个特色来进行条件统计,注意这里若是字段是NULL就不会统计,可是false是会被统计到的,记住这一点,咱们接下来看看几种常见的条件统计写法。函数
测试环境
Windows 10
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 7
Server version: 5.7.21-log MySQL Community Server (GPL)
Copyright © 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.学习
准备工做
新建一个Mysql数据表a,包含id和num两个字段
mysql> create table a(id int, num int);
Query OK, 0 rows affected (0.04 sec)测试
插入测试数据,为了看count()函数的效果,咱们插入两个空数据
mysql> insert into a values (1,100),(2,200),(3,300),(4,300),(8,null),(9,null);
Query OK, 6 rows affected (0.01 sec)
Records: 6 Duplicates: 0 Warnings: 0.net
查询表a中的数据,与后面的统计作比较blog
mysql> select * from a;
id
num
1
100
2
200
3
300
4
300
8
NULL
9
NULL
6 rows in set (0.09 sec)get
调用count()函数看效果,若是使用count(*)会查询出全部的记录数,但若是使用count(num)发现只有4条数据,num为NULL的记录并无统计上input
mysql> select count(*) from a;
count(*)
6
1 row in set (0.03 sec)it
mysql> select count(num) from a;
count(num)
4
1 row in set (0.04 sec)
条件统计
count()函数中使用条件表达式加or null来实现,做用就是当条件不知足时,函数变成了count(null)不会统计数量
mysql> select count(num > 200 or null) from a;
count(num > 200 or null)
2
1 row in set (0.22 sec)
count()函数中使用if表达式来实现,当条件知足是表达式的值为非空,条件不知足时表达式值为NULL;
mysql> select count(if(num > 200, 1, null)) from a;
count(if(num > 200, 1, null))
2
1 row in set (0.05 sec)
count()函数中使用case when表达式来实现,当条件知足是表达式的结果为非空,条件不知足时无结果默认为NULL;
mysql> select count(case when num > 200 then 1 end) from a;
count(case when num > 200 then 1 end)
2
1 row in set (0.07 sec)
总结
使用count()函数实现条件统计的基础是对于值为NULL的记录不计数,经常使用的有如下三种方式,假设统计num大于200的记录
select count(num > 200 or null) from a;
select count(if(num > 200, 1, null)) from a
select count(case when num > 200 then 1 end) from a
————————————————
本文仅供本身记录学习做用,版权归原做者全部,侵删
版权声明:本文为CSDN博主「AlbertS」的原创文章,遵循CC 4.0 BY-SA
原文连接:https://blog.csdn.net/alberts...
count 有条件 mysql_【笔记】Mysql中使用count加条件统计相关推荐
- mysql count 返回0_如何在MySQL中使用COUNT時返回0而不是null
我正在使用此查詢返回存儲在$ sTable中的歌曲列表以及存儲在$ sTable2中的總項目的COUNT.如何在MySQL中使用COUNT時返回0而不是null /* * SQL queries * ...
- Mysql中的count()与sum()区别
Mysql中的count()与sum()区别 首先创建个表说明问题 CREATE TABLE `result` ( `name` varchar(20) default NULL, `subject` ...
- mysql中的count(1)、count(*)、count(id)哪个更快?
今天和大家聊一下mysql中的count()方法 我们日常开发中,经常会用到count()命令,有的人用count(*),有的人用count(1),还有的人用count(id),那么这几种写法都有什么 ...
- Mysql中使用count加条件统计
文章目录 前言 测试环境 准备工作 条件统计 总结 前言 最近发现在处理Mysql问题时,count()函数频繁上镜,常常出现在分组统计的情景下,但是有时候并不是使用group by分好组就可以直接统 ...
- sqlserver建表语句_重新认识MySQL中的COUNT语句
在数据库的增删改查操作中,使用最频繁的就是查询操作. 而在所有查询操作中,统计数量操作更是经常被用到. 关于数据库中行数统计,无论是MySQL还是Oracle亦或者是SqlServer,都有一个函数可 ...
- MySQL用函数统计记录总数_在mysql中使用COUNT 或者SUM函数计算记录总数
count函数的作用 想要真正的理解count函数,我们就必须明白count函数的作用. 作用一:统计某一列非空(not null)值得数量,即统计某列有值得结果数,使用count(col),其中co ...
- mysql分组和where条件查询,mysql中where和having条件查询的区别
having一般跟在group by后面,先对查询结果分组,再根据having条件,筛选满足条件的组,限制字段最好选择分组的字段,可以操纵使用聚合函数(sum().count().avg()等)的列, ...
- checkpoint技术mysql_认识MySQL中的Checkpoint技术
1,checkpoint产生的背景 数据库在发生增删查改操作的时候,都是先在buffer pool中完成的,为了提高事物操作的效率,buffer pool中修改之后的数据,并没有立即写入到磁盘,这有可 ...
- MySQL中SQL命令语句条件查询
一.聚合函数 聚合函数:又叫组函数,用来对表中的数据进行统计和计算,结合group by分组使用,用于统计和计算分组数据 常用聚合函数 count(col):求指定列的总行数 max(col):求指定 ...
最新文章
- 拥抱并行流,提高程序执行速度
- chubby分布式锁服务概述
- 最后一个 IPV4 地址分配完毕,正式向IPV6过渡!
- 异常:This application has no explicit mapping for /error.以及spring.mvc.view.prefix配置解决
- python中dir用法_Python内置函数dir详解
- Android之实现首尾带圆角的多颜色水平条
- 确认密码参数php,laravel unique验证、确认密码confirmed验证以及密码修改验证的方法...
- 安卓PHP maker汉化,android 百度地图marker添加自定义视图
- 《深入浅出DPDK》读书笔记(十四):DPDK应用篇(DPDK与网络功能虚拟化:NFV、VNF、IVSHMEM、Virtual BRAS“商业案例”)
- python(24)下载文件
- Zookeeper概念介绍
- Linux系统管理初步(六)设置计划任务
- 查看Tomcat版本
- xrd连续扫描和步进扫描_多晶XRD步进扫描与连续扫描介绍
- python画五角星代码_如何用python画一个五角星_python绘制五角形教程
- 图扑软件以轻量化建模构建智慧城市
- 防火墙工作在哪个层_数据库安全关键技术之数据库防火墙技术
- 上市公司股息红利差别化个人所得税政策
- 零基础应该怎么学剪辑,大概要学多长时间?在磨金石教育学靠谱吗?
- Arduino基础2
热门文章
- MySQL查看数据表
- 根据坐标如何标记图片_推荐收藏 | 一文搞定SCI论文图片
- python tk 当输入数值错误是报错_Python的异常处理
- mysql 编译cpu数量_合适MySQL的Xeon 55XX系列CPU编译参数
- 这 6 个 Spring Boot 项目够经典
- 在滴滴和头条干了 2 年后端开发,太真实…
- Jsoup抓取网页数据完成一个简易的Android新闻APP
- 【错误记录】eclipse,android,logcat日志无法打印,真机调试
- struts2的OGNL表达式理解(一)
- 桥接路由器总是掉线_多路由的无线桥接步骤