购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 解决面试题的思路

在了解了常见的SQL语句分类和常见考点后,就相当于有了地图导航,知道学习SQL的哪些知识点,才能顺利拿到Offer。

有了地图导航还不够,因为在遇到实际的面试题时,你还需要知道正确的解题思路。所以本节主要介绍如何解题,教你如何一步步得到最终的答案。

SQL面试题,可以用下面的5步法来解决。

2.3.1 解题步骤

1.读懂问题,画出查询结果表

将问题的意思理解透彻,想象SQL查询结果表长什么样子。

读懂问题非常关键,但是却被很多面试者忽略掉。在实际的面试中,一般会有做题时间限制。很多时候,面试者会一上来就想如何写SQL语句,而不是先去理解问题,从而导致面对问题无从下手。

2.拆解问题

有时面试题中的问题比较复杂,我们需要将问题拆解为多个部分,逐一击破。

3.找出考点

问题拆解好之后,我们要根据问题点来找到对应的考点,看题目具体考查的是SQL哪些方面的知识,就是2.2节对应的知识。

4.分步实现

根据问题对应的知识点,写出分步实现的SQL语句。

5.组合实现

将分步实现的SQL语句组合在一起,形成最终的SQL语句。

以上是解题的5个步骤,下面我们通过一个案例来演示,如何用这5个步骤来解答面试题。这个案例中若有不懂的SQL知识,也不要害怕,我们会在后面对应章节进行讲解。你只需要通过这个案例,理解清楚如何用5步法来解答SQL面试题的大体思路就可以。

2.3.2 【案例】用5步法解题:房源评分统计

表2.1所示为各城市房源的评分表,表名为“评分表”,含有3个字段:房源号、城市、分数。求分数(满分10分)在0-5分、5-7分、7-9分、9分及以上的分别有多少个房源?

表2.1 评分表

【解题思路】

1.读懂问题,画出查询结果表

这道面试题是想找出不同分数段的房源有多少,那么我们可以想象着画出SQL查询结果表,如表2.2所示。

表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表达式的用法如下。

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

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

(2)对每个区间的房源进行计数。

在第(1)步的SQL语句中,每个case表达式前面加上计数函数count(),用于统计每个区间的房源数量。例如,区间0-5的房源数的代码如下:

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

图2.1 对应关系

5.组合实现

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

查询结果如表2.3所示,将其填充至题目所要求的“查询结果表”中即可。

表2.3 查询结果表

这样你就通过SQL解题的5个步骤得出了面试题答案。以上就是针对一个真实面试题的全部解题步骤。

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

本章主要介绍面试中考查的主要知识点和解题思路,后面的章节会针对每个知识点进行更加详尽的介绍,同时也有实战的面试题库来帮助读者练习。 evsQm3Fw4bBmpli3AORXbjxsby59xU26OzOnwxFxdu4aMJtoAMGzqI9UdyYA6KPe

点击中间区域
呼出菜单
上一章
目录
下一章
×