
-- 疫情表,三個字段:城市/地區 省份 當前確診人數
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;

