下面是项目中按照男女年龄段统计的核心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按年龄段查询相关推荐

  1. mysql查询学生表年龄语句_mysql中一张(居民)表按年龄段查询数据

    知识点: 用mysql,按年龄段查询一张居民的数据(各年龄段居民的个数) 1.如:查询resident(居民表),按照各年龄段,统计人数 2.mysql语句如下: select ageproporti ...

  2. mysql查询年龄段多少人_mysql中一张(居民)表按年龄段查询数据 shuaiflying

    知识点: 用mysql,按年龄段查询一张居民的数据(各年龄段居民的个数) 1.如:查询resident(居民表),按照各年龄段,统计人数 2.mysql语句如下: select ageproporti ...

  3. mysql年龄段统计_怎么分年龄段查询、统计?

    你的位置: 问答吧 -> PHP基础 -> 问题详情 怎么分年龄段查询.统计? 人员的资料中有"出生日期"字段,问: 如何按照每5年为一个区间去查询统计人员数据? 我初 ...

  4. java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码

    jsp与javabean链接mysql数据库并查询数据表的简单实例源码.这个简单的实例是给新手学习的,或者一些高手临时忘记怎么使用jsp操作mysql数据库时候查找的,包括了建立mysql数据库连接的 ...

  5. mysql中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示.  比如 SELECT * FROM [user ...

  6. MySQL 微秒慢查询补丁

    作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 原文出自:The new cool MySQL patch ha ...

  7. mysql timestamp比较查询

    这篇文章主要介绍了mysql timestamp比较查询遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助.如有错误或未考虑完全的地方,望不吝赐教 timestamp比较查询遇到的坑 记得之前 ...

  8. mysql开启慢查询日志

    应用背景: MySQL慢查询日志功能默认是关闭的,通过开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,再通过分析定位问题瓶颈,优化查询提高数据库系统的性能. 测试环境: centos7. ...

  9. Mysql中分页查询两个方法比较

    mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 1 2 3 SELECT COUNT(*) FROM foo WHERE b = 1; SELECT a FROM f ...

  10. mysql 返回的查询结果为空 (即零行)._Mysql数据同步(单向)

    首先准备两台服务器: 主:192.168.1.88 从:192.168.1.78 创建需要同步的数据库,比如为sync_db,将这个数据库各拷贝到78和88一份 修改主服务器88上的配置,找到my.c ...

最新文章

  1. Android 文件操作
  2. 一种新型鱼眼图像轮廓提取算法
  3. C++ Primer 5th笔记(chap 18 大型程序工具)虚继承
  4. java并发编程实践 读书笔记_Java - 并发编程实践(读书笔记)
  5. mybatis简单案例源码详细【注释全面】——实体层(User.java)
  6. js正则表达式匹配span标签
  7. 【转】Mybatis/Ibatis,数据库操作的返回值
  8. VIJOS 1512SuperBrother打鼹鼠(二维BIT)
  9. lambda函数 java_使用 Java 构建 Lambda 函数 - AWS Lambda
  10. [13]2019-ICML-Active Learning for Probabilistic Structured Prediction of Cuts and Matchings
  11. 研发管理和项目管理有哪些痛点?
  12. java 自动化测试_java写一个自动化测试
  13. Apk去掉签名以及重新签名的方法
  14. 兰州大学计算机专业保研率,兰州部分高校保研率排名,“兰州大学”保研率竟出乎人意料!...
  15. 在线TSV转纯文本工具
  16. 微信小程序:好玩的表情包机器人
  17. Hadoop实战-MR倒排索引(三)
  18. ps怎么抠图?教你怎么用钢笔工具抠图
  19. WIFI6 芯片厂商制程工艺
  20. 树莓派3B+TensorFlow Python3.7

热门文章

  1. 报告显示,2019秋冬高端游南北极、欧洲最受欢迎,海岛热度不减
  2. lstm优点缺点_LSTM和易失性时间序列:优点和缺点
  3. vim 修改注释颜色 tab键
  4. 三消类游戏的核心算法
  5. H3CNE综合小实验
  6. 我的IT之路2012(一)
  7. Excel表格转换为Word表格,并且保留Excel表格中公式不发生变化
  8. .click()与on('click',function())
  9. Oracle v$SQLAREA
  10. 2018-2-13-windows-10预览版升级win10-7月29-10240.16384