经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MySQL » 查看文章
【SQL实战】一个SQL统计全国各地疫情分布情况
来源:cnblogs  作者:buguge  时间:2022/1/17 11:00:56  对本文有异议

 

 

 

-- 疫情表,三个字段:城市/地区 省份 当前确诊人数
DROP TABLE IF EXISTS yiqing;
CREATE TABLE `datacenter`.`yiqing`(
`city` VARCHAR(32) COMMENT '城市/地区',
`province` VARCHAR(32) COMMENT '省份',
`current` INT COMMENT '当前确认人数'
)
COMMENT='疫情信息表';

INSERT INTO yiqing
SELECT '津南区', '天津', 217 UNION ALL
SELECT '安阳', '陕西', 110 UNION ALL
SELECT '西安', '陕西', 1385 UNION ALL
SELECT '咸阳', '河南', 10 UNION ALL
SELECT '郑州', '河南', 138 UNION ALL
SELECT '南阳', '河南', 95 UNION ALL
SELECT '呼伦贝尔', '内蒙古', 5 UNION ALL
SELECT '宁波', '浙江', 55 UNION ALL
SELECT '开封', '河南', 5 UNION ALL
SELECT '金华', '浙江', 3 UNION ALL
SELECT '防城港', '广西', 2 UNION ALL
SELECT '中山', '广东', 51 UNION ALL
SELECT '大连', '辽宁', 3 ;

SELECT * FROM yiqing ORDER BY 2,1;

 

 

-- §§§【统计全国疫情分布情况 结果列:省份、严重程度级别、累计确诊人数】
SELECT province AS '省份'
, CASE WHEN SUM(current)>=100 THEN 'Level1' WHEN SUM(current)<100 AND SUM(current)>=50 THEN 'Level2' ELSE 'Levy3' END AS '严重程度'
, SUM(current) AS '累计确认人数'
FROM yiqing
GROUP BY province
ORDER BY 3 DESC;

 

 

-- §§§【统计各省份疫情分布情况 结果列:省份、疫情风险等级、城市地区数、当前确诊数。例如:河南省有3个高风险城市,确诊人数总计300人】
SELECT province AS '省份'
, CASE WHEN current>=100 THEN '高'
WHEN current>=50 AND current<100 THEN '中'
ELSE '低' END AS '疫情风险等级'
, COUNT(1) AS '城市地区数'
, SUM(current) AS '当前确诊数'
FROM yiqing
GROUP BY province, CASE WHEN current>=100 THEN '高'
WHEN current>=50 AND current<100 THEN '中'
ELSE '低' END
ORDER BY 1, CASE 疫情风险等级 WHEN '高' THEN 1 WHEN '中' THEN 2 ELSE 3 END;

 

 

原文链接:http://www.cnblogs.com/buguge/p/15797158.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号