java统计各年龄阶段的数据
查询结果如图所示:

返回的数据类型是Map
后端代码如下:
/*** 统计各年龄阶段人员* @return*/@Overridepublic Map<String, Integer> countPersonByAge() {//用list集合接收查询出来的数据List<Map<String, String>> ageList = this.baseMapper.countPersonByAge();//用LinkedHashMapMap集合来保证集合的有序Map<String, Integer> ageMap = new LinkedHashMap<>();//用来存储所有年龄阶段List<String> ageInfoList = new ArrayList<>();ageInfoList.add("16");ageInfoList.add("16-18");ageInfoList.add("18-55");ageInfoList.add("56-60");ageInfoList.add("61");Map<String, String> exisetMap = new HashMap<>();//new一个HashMap来放入数据库查出来的年龄阶段和数量for (Map<String, String> countListMap : ageList) {//用exisetMap.put(countListMap.get("age"), countListMap.get("count"));}for (String ageInfo : ageInfoList) {//通过key取出value,通过age取出countInteger count = Convert.toInt(exisetMap.get(ageInfo), 0);//如果年龄段查询出来的数据为空,给默认值0if (count == null) {count = 0;}ageMap.put(ageInfo, count);}return ageMap;}
sql:
SELECTage,count( * ) AS countFROM(SELECTCASEWHEN age <![CDATA[ <= ]]> 16 THEN '16'WHEN age <![CDATA[ <= ]]> 18 AND age >= 16 THEN '16-18'WHEN age <![CDATA[ <= ]]> 55 AND age >= 18 THEN '18-55'WHEN age <![CDATA[ <= ]]> 60 AND age >= 56 THEN '56-60'WHEN age >= 61 THEN '61'END AS ageFROMsite_person_basic_infoWHEREdelete_flag =0) AS aGROUP BYage
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
