本篇博客解决的问题是SQL统计范围人数的问题。
比如统计0-3000,3000-4000,4000-5000.....等工资段的人数
或者统计0-60,60-70,70-80,80-90,90-100每个分数段的人数
类似这种问题的SQL解决方法
我们先通过一个例子来了解以下:
首先我们建一张表,名user如下
id | username | money |
1 | 张三 | 100 |
2 | 李四 | 300 |
3 | 王五 | 900 |
4 | 老六 | 400 |
5 | 七妹 | 8000 |
6 | 小八 | 1000 |
7 | 老九 | 1200 |
我们来统计money在区间 0-500,500-1000,1000-1500每个段的人数:
查询语句格式是这样的
select
count(case when money BETWEEN 0 AND 500 THEN 1 END) as '0-500',
count(case when money BETWEEN 501 AND 1000 THEN 2 END) as '500-1000',
count(case when money BETWEEN 1001 AND 1500 THEN 3 END) as '1000-1500'
FROM user
解析一下:
每一个count都是求一个分段,as是给分段一个别名
拿一个语句刨析一下里边的意思 count(case when money BETWEEN 0 AND 500 THEN 1 END)as '0-500'
case when 条件 Then 成立的话怎样 END
在这里是money在0-500之间,你可以自己按需求来写条件语句。每条语句的then尽量保持不一样
最后from user 查询 user表
四不四很简单
查询结果为