前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何快速搞定SQL面试题?这5步法给你答案

如何快速搞定SQL面试题?这5步法给你答案

作者头像
猴子数据分析
发布2024-03-25 11:05:01
860
发布2024-03-25 11:05:01
举报
文章被收录于专栏:猴子数据分析猴子数据分析

经常有小伙给我留言说在找工作,面试中遇到SQL相关问题,如何解决?

今天,我将自己多年总结出来的解答SQL面试的方法告诉你,它就是:5步法SQL解题步骤

为了帮助你更好的理解“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 表达式的用法如下。

代码语言:javascript
复制
(case when 字段1 > 值1 then 新值1
when 字段1 < 值1 then 新值2
else 新值3 (可省略)
end) as 别名

翻译过来就是当字段1 >值1时,取新值1 ;当字段1 <值1时,取新值2;当字段1 =值1时,取新值3。

对应这个面试题,代码如下:

代码语言:javascript
复制
(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 的房源数的代码如下:

代码语言:javascript
复制
count(case when 分数<5 then 房源号 end) as '0-5',

对应的逻辑关系如图1 所示。

图1 对应关系

5. 组合实现

把前面两个步骤的SQL 语句组合在一起,就是完整代码,如下所示:

代码语言:javascript
复制
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 个步骤得出了面试题答案。以上就是针对一个真实面试题的全部解题步骤。

在面试中,拿到任何题目都不要慌张,先思考最终结果是怎样一个展现,然后根据最终结果一步步拆解找出对应的知识点,分步实现,最终整合完成。同样,这个解题步骤也适应于解决工作里的实际业务问题。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-21,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 猴子数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com