Offer帮官网:offerbang.io
从互联网到金融,再到咨询公司
所有公司的数据岗面试都逃不过SQL!
你以为自己刷过几道题就能轻松应对面试,然而现场看到题目之后却原地僵化,脑子里一团乱麻…
如果你不希望面临如此窘境,
除了刷题,你还应该↓↓↓
-  熟悉面试官的常见问题“套路”
-  了解常见的提问类型/方式
-  掌握正确的答题技巧
-  利用经典问答例子高效“破局”
今天,我们就为新手面试小白们总结了一些SQL行业经典的面试问题及答题技巧,希望可以在你斩获心仪Offer的道路上“搭桥铺路”!
类型1 | 概念理解题
主要考察:基础知识理解,理论运用,总结归纳能力
例题1:
举例说明什么是关系数据库,什么是SQL?
定义:关系数据库是以某种方式相互链接或关联的数据表,主要用于存储不同类型的信息以及汇集后回答特定分析问题。
例子:在线零售商的关系数据库的简单版本
• 数据表1——顾客。客户信息列表,包括客户姓名、联系信息和发货首选项。此数据库中的每个记录都包含一个唯一的customer_id字段,通过该字段可以识别客户。
•  数据表2——订单。在零售商网站上购买的订单列表。每个订单列表还包含一个customer_id字段,用于将该订单的详细信息与下订单的特定客户相关联。
优势:在不丢失任何关键信息的情况下,有效避免使用不必要的重复和无法管理的大型数据库,最大限度地减少存储在服务器上的数据量,方便展示不同数据块链接情况。
答题重点:
1.关系数据库的基本概念
2.实际工作中概念的理解、运用
例题2:
解释说明SQL、JOIN句子的类型和使用
定义:在SQL中,JOIN子句用于返回将两个或多个其他表的内容合并在一起的表。
例子: 例如,如果我们有两个表,一个包含Customers信息,另一个包含各个客户订购的Orders 信息,那我们可以使用JOIN子句将它们组合在一起并创建一个提供所有必要的信息以便发货的新表——客户的完整订单列表。
类型:有多种类型的JOIN子句,它们的功能稍微有所不同:
INNER JOIN 返回在指定的两个表中都匹配的行列表。它是默认的连接类型,因此如果只输入JOIN而不指定任何其他条件,则将自动使用INNER JOIN。
LEFT JOIN 将返回语句中左表的所有结果,并在可能的情况下与右表中的行匹配。如果左表中的一行在右表中不包含相应的匹配项,仍将列出该行——右表中的列为空值。
RIGHT JOIN 将返回语句中右表的所有结果,并尽可能与左表中的行匹配。如果右表中的行在左表中不包含相应的匹配项,仍将该行列出——左表的列为空值。
FULL JOIN 将返回语句中左表和右表的所有结果。如果存在左表中的行与右表不匹配或右表中的行与左表不匹配的情况,所有数据仍将被返回——但SQL将在所有未匹配的列中输出空值。
CROSS JOIN 返回两个表的笛卡尔积——换句话说,左表的每个单独行与右表的每个单独行匹配。
答题重点:
1.对基础概念清晰理解、简要归纳
2.阐述需与实际工资例子相结合
类型2 | 实际应用题
主要考察:准确判断,正确编写,逻辑思维能力
例题1:
计算除去部门最高工资,和最低工资的平均工资(emp 表,id 员工 ,deptno 部门编号,salary 工资)(字节跳动面试题目)
分析:主要考察“窗口函数”的运用
答题:核心是使用窗口函数降序和升序分别排一遍就取出最高和最低。
答题重点:
1.判断“窗口函数”
2.正确编写
例题2:
求连续点击三次的用户数(中间无其他点击 ),最大连续天数的变形问题(腾讯微保面试)
分析:主要考察“窗口函数”的运用
答题:a表记录了点击的流水信息,包括用户id ,和点击时间:
usr_id a a b a a a a
click_time t1 t2 t3 t4 t5 t6 t7
row_number() over(order by click_time) as rank_1 得到rank_1为 1 2 3 4 5 6 7
row_number() over(partition by usr_id order by click_time) 得到rank_2 为 1 2 1 3 4 5 6
rank_1- rank2 得到diff 为 0 0 2 1 1 1 1
这时我们发现只需要对diff进行分组计数大于3个就是连续点击大于三且中间没有其他人点击的用户。
答题重点:
1.判断“窗口函数”
2.分组计数、正确编写
例题3:
分析:此数据集很可能包含具有 customer_id为空的order值。在条件中使用SELECT子句时,具有空值的行与=或<>运算符不匹配。可以修改如下,以产生预期的结果:
答题重点:
1.在条件中使用Select子句
2.分析准确,编写正确
例题4:
1.学生表:tb_student,name:学生姓名,id:学号,class:班级,in_time:入学时间,age:年龄,sex:性别,major:专业
2.学生成绩表:tb_score,id:学号,course:课程,score:分数
筛选出2017年入学的“计算机”专业年龄最小的10位同学名单(姓名、学号、班级、年龄),并统计每个班同学各科成绩平均分大于80分的人数和人数占比(滴滴面试题)
分析:写一个子查询,从score表中得到以学号分组的学生各科平均分。命名为aaa,将其与学生表内联结。再以class分组,得到以class分组的各班学生的平均分,最后通过case语句,sum聚合函数得到平均分>80分的计数,和所占各班总人数比例。
case语句也可以用if语句来代替:
答题重点:
1.子查询、内联结、分组、Case语句、Sum函数
2.准确识别、编写正确
例题5:
分组结果的条件:查询平均成绩大于60分学生的学号和平均成绩
分析:“平均成绩”展开来说就是计算每个学生的平均成绩这里涉及到“每个”就是要分组了,平均成绩大于60分,就是对分组结果指定条件。
答题:
分组结果的条件:查询至少选修两门课程的学生学号
分析:第1步,需要先计算出每个学生选修的课程数据,需要按学号分组;第2步,至少选修两门课程:也就是每个学生选修课程数目>=2,对分组结果指定条件。
答题:
答题重点:
1.分组结果指定条件
2.编写正确
例题6:
构建一个基本的INNER JOIN
我们可以这样处理:
答题重点:
1.Select语句
2.编写、判断的准确性
例题7:
查询不同老师所教不同课程平均分从高到低显示
分析:通过教师号连接课程表得出每个老师教的课程号;用课程号连接成绩表得出成绩;按照每个老师教的课程平均分排序。
答题重点:
1.分组、条件、排序
2.多表连接
例题8:
现在有一张2019年一整年的订单表consum_order_table,包含order_id(订单id)、uid(用户id)、amount(订单金额),现在需要求出80%的订单金额最少是由多少用户贡献的。
分析:先生成一个人维度的订单金额表,在维度表的基础上去进行累积和,累计和的实现可以通过窗口函数来实现,在生成累积和的时候需要按照订单金额进行降序排列,最后再利用一个子查询,获取到全部的订单金额,用累积订单金额去除全部订单金额,就可以得到累积的订单金额贡献情况。
答题:
最后运行结果如下:
答题重点:
1.求累积和、降序排列、子查询
2.正确编写
这些SQL的例题仅是冰山一角,想拿到大厂Offer,不可能仅靠读一篇文章,刷完一道题就能成功。因此,同学们还是需要有技巧的勤加练习,争取早日上岸!
想要高效学好Quant?
精准练习,专业指导才能事半功倍!
抓紧报名《量化Quant刷题冲刺班》
九大投行导师、清华奥赛金牌学长
带你全面梳理Quant知识点考点
经典刷题圣经 + 实时更新面试题一次刷完!
量化Quant刷题冲刺班
高阶知识技能 + 真题实训 + 面试技巧全覆盖一站搞定     
///
九大投行导师、清华奥赛金牌学长带你全面梳理Quant知识点考点,1遍刷完4大经典求职圣经!
01
关于课程
刷题冲刺班针对量化/交易/资产管理/风险管理/对冲基金等面试,由横扫九大投行、对冲基金的大牛合力研发,结合面试经验和历年高频真题,系统梳理数理、金融、编程Technical知识点,全面覆盖各类考点难点易错点,并配合题库课后练习,帮你理清解题思路,告别死记硬背!
课程收获
✅ 系统梳理量化/交易/资产管理/风险管理/对冲基金面试知识点
✅ 高频真题解析,及变形题答题思路,举一反三,活学活用
✅ 直播课现场答疑,业界考题详解
✅ Offer帮精选题库,让你刷题快人一步
适合人群
正在或准备申请Quant岗位
梳理重点知识点的同学
已经收到Quant岗位面试
想刷题备战的同学
通过Quant面试题
进阶练习的同学
扫码了解课程详情
Dianna
Offer帮课程顾问
02
名企导师天团
刷题班由教研组结合历年投行、买方面试真题合力研发,全面覆盖考点难点易错点,确保同学们Technical面试不踩坑。
David
Goldman Sachs量化组校招官
Jack
JP Morgan
Tong
JP Morgan资产管理
Peter
Morgan Stanley量化组
每周我们都安排了相应的答疑时间,大家可以在答疑课上和老师互动,及时解决问题。如果课前有将问题整理好,也可以发在交流群或发给班主任/助教,我们会整理后反馈给老师课上答疑。
03
课程大纲
面试考点 + 高阶知识点全面覆盖,助你面试速成,斩获Offer!
_
第一讲
脑筋急转弯面试题解析
第二讲
概率论面试题解析
第三讲
脑筋急转弯、概率论面试题答疑
第四讲
统计学原理面试题解析
第五讲
 C++、Python面试题解析
第六讲
脑筋急转弯、概率论、统计学原理高阶真题解析
第七讲
脑筋急转弯、概率论高阶题/统计学原理面试题及高阶题答疑
第八讲
数据结构面试题解析
第九讲
编程算法面试题解析
第十讲
数据结构,编程算法面试题答疑
第十一讲
机器学习面试题解析
第十二讲
随机过程面试题解析
第十三讲
金融及衍生品面试题解析
第十四讲
数据结构、编程算法、机器学习、随机过程、金融及衍生品高阶真题解析
第十五讲
数据结构、编程算法高阶题/机器学习、随机过程、金融及衍生品面试题及高阶题答疑
04
创新自主学习平台
课程由录播与直播相结合,课程有效期内,Offer帮为你提供免费无限次课程回放,帮助你补课或者反复复习,满足你的时间弹性和多次学习需要。
一站式管理学习资料、课程进度、

实时反馈,随时随地,想学就学。
教研组精心打造课程体系、
资料超强实用性,实时更新
视频 + 直播系统,满足时间弹性

分节清晰,方便管理,学着不累
班主任全程跟踪监督管理

导师Office Hour答疑,专属交流群
现在报名还可获得
暑期限时特惠
 $100优惠
报名单门课程即可享受
$500优惠
报名2门及以上课程可享受
💎现在报名还有额外惊喜福利
0元领原价$199求职入门课
限时优惠 名额有限
赶快扫描小助手二维码
咨询活动&课程详情吧
 Offer帮
近期学员Offer榜
金融、咨询、数据等多个领域的Offer展示
能展示出的Offer只是冰山一角,这一份份实打实、沉甸甸的Offer,让我们团队的每一个人都倍感自豪。在未来的道路上,Offer帮会继续脚踏实地,用专业、诚信、用心的原则,助力所有学员的求职之路!
(点击图片即可查看大图)
继续阅读
阅读原文