SQL CASE WHEN高级应用:评分转换与复杂统计
49 浏览量
更新于2024-08-30
收藏 266KB PDF 举报
本文主要探讨SQL中的CASE...WHEN...函数在不同场景下的高级应用。首先,我们了解了CASE函数的基本语法,它类似于Java中的IF...ELSE语句,用于根据指定的条件返回不同的值。CASE...WHEN结构包含一个或多个条件分支,每个分支对应一个结果,当满足某个条件时,返回该条件的结果。
1. 场景一:计算评分等级,如score=60为及格,score>=80为优秀。通过SQL语句如`SELECT STUDENT_NAME, CASE WHEN score = 60 THEN '及格' WHEN score >= 80 THEN '优秀' ELSE '不及格' END AS grade`,可以轻松地将分数映射为评语。
2. 场景二:统计班级男女学生以及及格人数。例如,通过`SELECT gender, CASE WHEN score >= 60 THEN '及格' ELSE '不及格' END AS status, COUNT(*) AS count FROM students GROUP BY gender`,可以分别统计男女生中及格的人数。
3. 场景三:行转列(pivot)和聚合函数的结合,用于统计城市间的水、电、热消耗总量。这可能需要使用`CASE`与`GROUP BY`和聚合函数(如SUM)一起,如`SELECT city, '水耗' AS type, SUM(consumption) FROM table GROUP BY city, type`,将每一类消耗单独汇总。
4. 场景四:CASE...WHEN用于子查询计算成本,根据城市的用电量和分档电价。比如,`SELECT city, CASE WHEN usage <= 100 THEN price1 ELSE (usage > 100 AND usage <= 200 ? price2 : price3) END AS cost`,根据用电量的不同范围应用不同的电价。
5. 场景五:结合MAX聚合函数的面试题,可能涉及到查找某个最大值对应的结果。例如,`SELECT MAX(score), CASE WHEN score = MAX(score) THEN '最高分' ELSE '非最高分' END AS top_score FROM scores`,找出最高分并标记为“最高分”。
CASE...WHEN不仅用于基本的数据映射,还可以与其他SQL功能(如聚合函数、分组、子查询)结合,解决复杂的业务问题,提高数据处理的灵活性和准确性。掌握这个函数对于理解和优化SQL查询至关重要。
2024-12-26 上传
2024-12-26 上传
2024-12-26 上传
2024-12-26 上传
weixin_38693476
- 粉丝: 1
- 资源: 949
最新资源
- ok:K5编程语言的开源解释器
- vue-tiny-loading-overlay:vue.js 2x的任何元素的微小轻量级加载叠加指令
- baseview:音频插件UI的低级窗口系统界面
- cnn_gru-regression-master.zip
- 毕业设计&课设--大学毕业设计.zip
- 数据分析
- Excel模板00固定资产管理台帐.zip
- emgo:恩戈
- stop-words:支持合并的 code.google.compstop-words 的分支
- 毕业设计&课设--大学毕业设计(Web系统),企业人力资源管理系统(小型),前端采用Bootstrap框架,后端使用.zip
- unSAFE_MODE:SAFE_MODE系统更新程序的3DS用户级二次利用。 这实际上是一个相当安全的hax(͡°͜ʖ͡°)
- Excel模板企业公司部门预付款申请表单模板.zip
- holoclean:一种用于数据丰富的机器学习系统
- YANADU_DICT:The Conlang YANADU字典自动程序
- plex-api-graphql:用于Plex API的非官方GraphQL服务器
- mayorleaguec12:Basi HTML页面