经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Oracle » 查看文章
【SQL干货】一条sql查出来全国空气质量排名
来源:cnblogs  作者:buguge  时间:2022/1/17 22:02:44  对本文有异议

 

 


-- 全国各地空气质量指数表
DROP TABLE IF EXISTS city_aqi;
CREATE TEMPORARY TABLE `city_aqi`(
`city` VARCHAR(32) COMMENT '城市/地区',
`province` VARCHAR(32) COMMENT '所在省份',
`aqi` INT COMMENT '当前AQI'
);

-- 全国各地空气质量指数

INSERT INTO city_aqi
SELECT '平果市', '广西壮族自治区', 7 UNION ALL
SELECT '隆安县', '广西壮族自治区', 7 UNION ALL
SELECT '阿克塞县', '甘肃省', 8 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 UNION ALL
SELECT '邢台', '河北省', 251 UNION ALL
SELECT '邯郸', '河北省', 200 ;

SELECT * FROM city_aqi;

 

 


-- §§§【全国空气质量排名】
SELECT city, province
, CASE WHEN aqi<50 THEN '优' WHEN aqi>=50 AND aqi<100 THEN '良' WHEN aqi>=100 AND aqi<150 THEN '中度污染' ELSE '重度污染' END AS '等级'
, aqi
FROM city_aqi
ORDER BY aqi;

 

 

-- §§§【全国空气质量排名--- 显示行号,即“排名”列】
SELECT (@i:=@i+1) AS '排名', city, province
, CASE WHEN aqi<50 THEN '优' WHEN aqi>=50 AND aqi<100 THEN '良' WHEN aqi>=100 AND aqi<150 THEN '中度污染' ELSE '重度污染' END AS '等级'
, aqi
FROM city_aqi,(SELECT @i:=0) AS it
ORDER BY aqi;

 

 

--  §§§ 倒序如果直接在order by子句里加上DESC,是不正确的。因为排名要降序,而不是从1开始。 要通过临时表来绕点弯儿

  1. SELECT * FROM(
  2. SELECT (@i:=@i+1) AS '排名', city, province
  3. , CASE WHEN aqi<50 THEN '' WHEN aqi>=50 AND aqi<100 THEN '' WHEN aqi>=100 AND aqi<150 THEN '中度污染' ELSE '重度污染' END AS '等级'
  4. , aqi
  5. FROM city_aqi,(SELECT @i:=0) AS it
  6. ORDER BY aqi
  7. ) a ORDER BY 1 DESC

 

原文链接:http://www.cnblogs.com/buguge/p/15815477.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号