用5步法轻松搞定SQL面试题:从问题解读到组合实现
共 4128字,需浏览 9分钟
·
2023-10-31 23:09
👆点击“博文视点Broadview”,获取更多书讯
在数据库岗位面试中,SQL查询题常常让很多面试者感到棘手。为了帮助大家顺利通关,这里分享新书《SQL面试宝典:图解数据库求职题(全彩)》中提到的一款实用的SQL面试题解答方法——5步法。
通过本文,你将了解如何用这5步法来解答SQL面试题,并轻松搞定数据库岗位面试。
【案例】用5步法解题:房源评分统计
表1 所示为各城市房源的评分表,表名为“评分表”,含有3个字段:房源号、城市、分数。求分数(满分10 分)在0~5 分、5~7 分、7~9 分、9 分及以上的分别有多少个房源?
表1 评分表
【解题思路】
1. 读懂问题,画出查询结果表
这道面试题是想找出不同分数段的房源有多少,那么我们可以想象着画出SQL 查询结果表,如表2 所示。
表2 查询结果表
2. 拆解问题
为了得到最终的查询结果表,我们可以将问题拆解为下面几个部分。
(1)将“评分表”按照0-5 分、5-7 分、7-9 分、9 分及以上4 个区间进行分组。
(2)对每个区间的房源进行计数。
3. 找出考点
通过问题拆解,可以发现这个题目是“分区间问题”,考查的SQL 知识是“复杂查询”里多条件判断的case 表达式。
4. 分步实现
(1)将“评分表”按照0-5 分、5-7 分、7-9 分、9 分及以上这4 个区间进行分组。“分区间问题”的本质是多条件判断,要想到用SQL 里的case 表达式知识来实现。
case 表达式的用法如下。
(case when 字段1 > 值1 then 新值1
when 字段1 < 值1 then 新值2
else 新值3 (可省略)
end) as 别名
翻译过来就是当字段1 >值1时,取新值1 ;当字段1 <值1时,取新值2;当字段1 =值1时,取新值3。
对应这个面试题,代码如下:
(case when 分数<5 then 房源号 end) as '0-5',
(case when 分数>=5 and 分数<7 then 房源号 end) as '5-7',
(case when 分数>=7 and 分数<9 then 房源号 end) as '7-9',
(case when 分数>=9 then 房源号 end) as '9+'
(2)对每个区间的房源进行计数。
在第(1)步的SQL 语句中,每个case 表达式前面加上计数函数count(),用于统计每个区间的房源数量。例如,区间0-5 的房源数的代码如下:
count(case when 分数<5 then 房源号 end) as '0-5',
对应的逻辑关系如图1 所示。
图1 对应关系
5. 组合实现
把前面两个步骤的SQL 语句组合在一起,就是完整代码,如下所示:
select
count(case when 分数<5 then 房源号 end) as '0-5',
count(case when 分数>=5 and 分数<7 then 房源号 end) as '5-7',
count(case when 分数>=7 and 分数<9 then 房源号 end) as '7-9',
count(case when 分数>=9 then 房源号 end) '9+'
from 评分表;
查询结果如表3 所示,将其填充至题目所要求的“查询结果表”中即可。
表3 查询结果表
这样你就通过SQL 解题的5 个步骤得出了面试题答案。以上就是针对一个真实面试题的全部解题步骤。
在面试中,拿到任何题目都不要慌张,先思考最终结果是怎样一个展现,然后根据最终结果一步步拆解找出对应的知识点,分步实现,最终整合完成。同样,这个解题步骤也适应于解决工作里的实际业务问题。
本书主要内容
了解工作中的常见问题是如何通过 SQL 解决的,真正做到“学以致用”。
49个实战面试题,将每个 SQL 知识点融入面试题中,帮助读者快速通过 SQL 面试,每个面试题均采用“案例分析 + 图文配合 +SQL 语句”的形式进行讲解。
8个实战项目,所涉及的实战解法基本能够解决读者面试中遇到的 90% 的 SQL 问题。
更多SQL面试相关内容请参看《SQL面试宝典:图解数据库求职题(全彩)》一书。
限时五折优惠,快快抢购吧!
按以下方式与博文菌互动,即有机会获赠图书!
活动方式:在评论区留言参与“你想要面试求职的岗位”“你在SQL面试中遇到的难点是什么”等话题互动,届时会在参与的小伙伴中抽取1名幸运鹅赠送本书一本!
说明:留言区收到回复“恭喜中奖”者将免费获赠本图书,中奖者请在收到通知的2小时内将您的“姓名+电话+快递地址”留言至原评论下方处即可,隐私信息不会被放出,未在规定时间内回复视作自动放弃兑奖资格。
活动时间:截至10月30日开奖。
快快拉上你的小伙伴参与进来吧~~
发布:刘恩惠
审核:陈歆懿
如果喜欢本文 欢迎 在看丨留言丨分享至朋友圈 三连 < PAST · 往期回顾 >
书单 | 10月新书速递!