MySQL的count计数条件问题
简介某些时候我们需要通过在使用count的过程中,只需要计算某些条件下的记录数,这时候我们就需要使用到Count条件计数问题。
数据如下表:如果需要统计等级分别为1,2,3的总人数,那么我们如何实现呢?
| id | name | level |
|---|---|---|
| 1 | 张三 | 1 |
| 2 | 李四 | 2 |
| 3 | 王五 | 3 |
| 4 | 张二娃子 | 1 |
| 5 | 李旦 | 1 |
| 6 | 狗娃子 | 2 |
1、方式一
mysql> select count(level = 1 or null) as '等级1',count(level = 2 or null) as '等级2',count(level = 3 or null) as '等级3' from users;
+-------+-------+-------+
| 等级1 | 等级2 | 等级3 |
+-------+-------+-------+
| 3 | 2 | 1 |
+-------+-------+-------+
1 row in set (0.05 sec)
上面的SQL一定要注意,必须加上or null,为什么呢?
count统计的是不为null的数;但是false不为null,所以会被统计上;
如果要让表达式为null,所以就需要or null表达式,false or null后就是null,所以就不会被统计上
2、方式二
mysql> select count(case when level=1 then level end) as '等级1',count(case when level=2 then level end) as '等级2',count(case when level=3 then level end) as '等级3' from users;
+-------+-------+-------+
| 等级1 | 等级2 | 等级3 |
+-------+-------+-------+
| 3 | 2 | 1 |
+-------+-------+-------+
1 row in set (0.04 sec)
在使用Laravel中如果要进行复杂的查询,那么通过模型中的函数来查询是不行的,所以本文主要记录如何通过aggregate来进行复杂的查询。
Golang打包一般的静态资源文件到二进制文件中还是比较简单,但是如果遇到使用Vue编写的后台界面,该如何打包呢?本文就是记录如何打包Vue到二进制包
无向图(Undirected Graph)
在公司内部多项目并行的时候,每次开启要给项目就需要申请一个域名,并且每个域名就需要支持HTTPS,所以前面我们已经用过Certbot生成证书,那么本文我们主要记录Certbot生成泛域名证书。
正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。工作中往往需要用到正则表达式,那么本文主要记录正则表达式的一些基本的知识和常用的正则表达式。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题