MySQL按年龄段查询
下面是项目中按照男女年龄段统计的核心sql代码:
COUNT(tr.id)AS '体检总人数',SUM(CASE WHEN s.sex=1 THEN 1 ELSE 0 END) AS '男体检总数',SUM(CASE WHEN s.sex=0 THEN 1 ELSE 0 END) AS '女体检总数',SUM(CASE WHEN s.sex=1 AND tr.age >=18 AND tr.age <=29 THEN 1 ELSE 0 END) AS '男18--29岁',SUM(CASE WHEN s.sex=0 AND tr.age >=18 AND tr.age<=29 THEN 1 ELSE 0 END) AS '女18--29岁',SUM(CASE WHEN s.sex=1 AND tr.age <=45 AND tr.age>=30 THEN 1 ELSE 0 END) AS '男30--39岁',SUM(CASE WHEN s.sex=0 AND tr.age<=45 AND tr.age>=30 THEN 1 ELSE 0 END) AS '女30--39岁',SUM(CASE WHEN s.sex=1 AND tr.age <=50 AND tr.age>=46 THEN 1 ELSE 0 END) AS '男40--49岁',SUM(CASE WHEN s.sex=0 AND tr.age<=50 AND tr.age>=46 THEN 1 ELSE 0 END) AS '女40--49岁',SUM(CASE WHEN s.sex=1 AND tr.age <=60 AND tr.age>50 THEN 1 ELSE 0 END) AS '男50--59岁',SUM(CASE WHEN s.sex=0 AND tr.age<=60 AND tr.age>50 THEN 1 ELSE 0 END) AS '女50--59岁',SUM(CASE WHEN s.sex=1 AND tr.age <=70 AND tr.age>60 THEN 1 ELSE 0 END) AS '男60--69岁',SUM(CASE WHEN s.sex=0 AND tr.age<=70 AND tr.age>60 THEN 1 ELSE 0 END) AS '女60--69岁',SUM(CASE WHEN s.sex=1 AND tr.age <=80 AND tr.age>70 THEN 1 ELSE 0 END) AS '男70--79岁',SUM(CASE WHEN s.sex=0 AND tr.age<=80 AND tr.age>70 THEN 1 ELSE 0 END) AS '女70--79岁',SUM(CASE WHEN s.sex=1 AND tr.age >80 THEN 1 ELSE 0 END) AS '男80岁以上',SUM(CASE WHEN s.sex=0 AND tr.age>80 THEN 1 ELSE 0 END) AS '女80岁以上'
我拿其中一句解释一下
SUM(CASE WHEN s.sex=1 AND tr.age >=18 AND tr.age <=29 THEN 1 ELSE 0 END) AS '男18--29岁',
先看sum的括号里面的部分
case when sex = 1 and age>=18 and age <=29 then 1 else 0 end
它表示的含义是:如果性别为1(也就是男),并且年龄在18-29岁之间成立为1,不成立为0.
case和end 是一个关键字你可以理解为语句的开始和结束。
when相当于if做判断,then就是判断之后显示的结果。如果成立显示为1,不成立显示为0
sum就是将各个值相加。形如:1+1+0+1+0+1+1+0+1+1
项目最后统计的结果截图形如:
MySQL按年龄段查询相关推荐
- mysql查询学生表年龄语句_mysql中一张(居民)表按年龄段查询数据
知识点: 用mysql,按年龄段查询一张居民的数据(各年龄段居民的个数) 1.如:查询resident(居民表),按照各年龄段,统计人数 2.mysql语句如下: select ageproporti ...
- mysql查询年龄段多少人_mysql中一张(居民)表按年龄段查询数据 shuaiflying
知识点: 用mysql,按年龄段查询一张居民的数据(各年龄段居民的个数) 1.如:查询resident(居民表),按照各年龄段,统计人数 2.mysql语句如下: select ageproporti ...
- mysql年龄段统计_怎么分年龄段查询、统计?
你的位置: 问答吧 -> PHP基础 -> 问题详情 怎么分年龄段查询.统计? 人员的资料中有"出生日期"字段,问: 如何按照每5年为一个区间去查询统计人员数据? 我初 ...
- java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码
jsp与javabean链接mysql数据库并查询数据表的简单实例源码.这个简单的实例是给新手学习的,或者一些高手临时忘记怎么使用jsp操作mysql数据库时候查找的,包括了建立mysql数据库连接的 ...
- mysql中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user ...
- MySQL 微秒慢查询补丁
作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 原文出自:The new cool MySQL patch ha ...
- mysql timestamp比较查询
这篇文章主要介绍了mysql timestamp比较查询遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助.如有错误或未考虑完全的地方,望不吝赐教 timestamp比较查询遇到的坑 记得之前 ...
- mysql开启慢查询日志
应用背景: MySQL慢查询日志功能默认是关闭的,通过开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,再通过分析定位问题瓶颈,优化查询提高数据库系统的性能. 测试环境: centos7. ...
- Mysql中分页查询两个方法比较
mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 1 2 3 SELECT COUNT(*) FROM foo WHERE b = 1; SELECT a FROM f ...
- mysql 返回的查询结果为空 (即零行)._Mysql数据同步(单向)
首先准备两台服务器: 主:192.168.1.88 从:192.168.1.78 创建需要同步的数据库,比如为sync_db,将这个数据库各拷贝到78和88一份 修改主服务器88上的配置,找到my.c ...
最新文章
- Android 文件操作
- 一种新型鱼眼图像轮廓提取算法
- C++ Primer 5th笔记(chap 18 大型程序工具)虚继承
- java并发编程实践 读书笔记_Java - 并发编程实践(读书笔记)
- mybatis简单案例源码详细【注释全面】——实体层(User.java)
- js正则表达式匹配span标签
- 【转】Mybatis/Ibatis,数据库操作的返回值
- VIJOS 1512SuperBrother打鼹鼠(二维BIT)
- lambda函数 java_使用 Java 构建 Lambda 函数 - AWS Lambda
- [13]2019-ICML-Active Learning for Probabilistic Structured Prediction of Cuts and Matchings
- 研发管理和项目管理有哪些痛点?
- java 自动化测试_java写一个自动化测试
- Apk去掉签名以及重新签名的方法
- 兰州大学计算机专业保研率,兰州部分高校保研率排名,“兰州大学”保研率竟出乎人意料!...
- 在线TSV转纯文本工具
- 微信小程序:好玩的表情包机器人
- Hadoop实战-MR倒排索引(三)
- ps怎么抠图?教你怎么用钢笔工具抠图
- WIFI6 芯片厂商制程工艺
- 树莓派3B+TensorFlow Python3.7
热门文章
- 报告显示,2019秋冬高端游南北极、欧洲最受欢迎,海岛热度不减
- lstm优点缺点_LSTM和易失性时间序列:优点和缺点
- vim 修改注释颜色 tab键
- 三消类游戏的核心算法
- H3CNE综合小实验
- 我的IT之路2012(一)
- Excel表格转换为Word表格,并且保留Excel表格中公式不发生变化
- .click()与on('click',function())
- Oracle v$SQLAREA
- 2018-2-13-windows-10预览版升级win10-7月29-10240.16384