求职指南!给数据开发的SQL面试准备路径!
highlight: a11y-dark
我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第24篇文章,点击查看活动详情
- 💡 作者:韩信子@ShowMeAI
- 📘 数据分析实战系列:http://www.showmeai.tech/tutorials/40
- 📘 AI 面试题库系列:http://www.showmeai.tech/tutorials/48
- 📘 本文地址:http://www.showmeai.tech/article-detail/342
- 📢 声明:版权所有,转载请联系平台与作者并注明出处
- 📢 收藏ShowMeAI查看更多精彩内容
大量的数据科学职位需要精通 SQL,它也是数据分析师、数据科学家、数据建模岗最常考核的面试技能。在本篇内容中 ShowMeAI 将梳理汇总所有面试 SQL 问题,按照不同的主题构建练习专项块,要求职的同学们可以按照对应板块内容进行专项击破与复习。
本篇内容借助于LeetCode平台,它是面试刷题演练的绝佳资源,内容覆盖大家熟知的数据结构算法和 SQL等。 LeetCode 将问题分为简单、中等和困难的难度级别,SQL板块的一个问题是它没有对它们做很好的分类,大家可以参考 ShowMeAI 在本篇的内容板块分类方式。
我们每个板块的内容都会指向 LeetCode 问题的对应链接,大家可以刷题和定向复习。
💡 学习计划时间表
我们建议最佳的节奏是1天一个板块,每天 2-4 个 SQL 问题(就如我们在下面划分的板块)。 这个节奏下你应该可以充分掌握并巩固对应的主题。
当然,如果你是资深玩家,可以跳过里面的基础板块,专注于更中级和高级的主题(比如第8,9,10天的内容)。
对于 SQL 更详尽的内容,欢迎大家查阅ShowMeAI制作的速查表,快学快用:
💡 学习计划
💦 第1天:选择和过滤
这个板块主要针对 SQL 的SELECT
语句,掌握使用它从一个或多个表中选择列字段,配合WHERE
语句设定一个或多个条件。
- 📘单列条件选择:Article Views I
- 📘多条件选择:Big Countries
- 📘过滤具有空值的列:Find Customer Referee
- 📘选择第二大的值:Second Highest Salary
💦 第2天:表关联
SQL中有 4 种主要的连接类型: INNER JOIN
(或者 JOIN
), LEFT JOIN
/ RIGHT JOIN
, FULL OUTER JOIN
, 和 CROSS JOIN
。
SQL中的UNION
函数将两个或多个 select 语句的结果集组合成一个结果。
SQL UNION ALL
函数保留重复的行。
- 📘左/右/外连接:Combine Two Tables
- 📘全外连接:Employees With Missing Information
- 📘选择重复行:Duplicate Emails
- 📘将列重新排列为行值:Rearrange Products Table
💦 第3天:分组聚合
SQL中GROUP BY
语句根据一列或多列的值对行进行分组,每组返回一行。分组之后可以对每个组执行聚合函数,例如 SUM
和 COUNT
。
- 📘分组和聚合:Daily Leads and Partners
- 📘join与分组:Customer Who Visited but Did Not Make Any Transactions
- 📘带where的分组:The Latest Login in 2020
💦 第4天:过滤分组
SQL HAVING
子句为定义的组指定条件 GROUP BY
. 这通常用于过滤由分组和聚合产生的行。
- 📘空值过滤与分组求和:Top Travellers
- 📘分组搭配having语句:Actors and Directors Who Cooperated At Least Three Times
💦 第5天:CASE语句
SQL CASE
语句判断符合的条件并返回该条件下对应的结果,类似在其他编程语言中的if
语句。
- 📘带条件计算值:Calculate Special Bonus
- 📘对数据关系进行分类:Tree Node
- 📘条件判断&求和:Capital Gain/Loss
- 📘数据透视表:Reformat Department Table
💦 第6天:子查询
SQL 子查询是嵌套在另一个查询中的查询,我们可以把一个查询的结果,用到另一个查询中。 - 📘Sales Person:子查询中的join - 📘Market Analysis I:join中的子查询
💦 第7天:更新&删除
SQL中的UPDATE
语句用于更改表中的现有数据。
SQL中的DELETE
语句用于从表中删除一行或多行。
- 📘反转字段的值:Swap Salary
- 📘删除重复行:Delete Duplicate Emails
💦 第8天:字符串处理
SQL中有很多字符串处理函数,例如UPPER
, LOWER
, CONCAT
, GROUP_CONCAT
, TRIM
,以及正则表达式的使用。 熟悉一些常见的 SQL 字符串函数 📘在这里 。
- 📘Fix Names in a Table:仅首字母大写
- 📘Group Sold Products By The Date:与 group by 连接
- 📘Patients With a Condition:过滤包含子字符串的字符串
💦 第9天:分析函数
SQL中
- FIRST_VALUE()
和 LAST_VALUE()
分析函数分别返回一组有序值中的第一个值和最后一个值;
- LAG()
窗口函数提供对前一行或多行数据的访问;
- LEAD()
窗口函数提供对下一行或多行数据的访问。
对应考题 - 📘Consecutive Numbers:选择连续值 - 📘Department Highest Salary:获取分区头部 - 📘Exchange Seats:每两行交换一次
💦 第10天:窗口函数
常用&面试常考的RANK窗口函数是 ROW_NUMBER()
, RANK()
, DENSE_RANK()
和 NTILE()
- 📘Rank Scores:得分排名
- 📘Department Top Three Salaries:分区前 3 名
- 感谢飞书放过幕布!100个GPT-4实战案例;GPT-4免费平替Poe;AI绘画新手指南之SD篇;new Bing靠谱教程 | ShowMeAI日报
- whylogs工具库的工业实践!机器学习模型流程与效果监控 ⛵
- 脉脉疯传!2023年程序员生存指南;多款prompt效率加倍工具;提示工程师最全秘籍;AI裁员正在发生 | ShowMeAI日报
- 中国风?古典系?AI中文绘图创作尝鲜!⛵
- Python中内置数据库!SQLite使用指南!
- Pandas中你一定要掌握的时间序列相关高级功能
- 数据科学家赚多少?数据全分析与可视化 ⛵
- 交互式仪表板!Python轻松完成!⛵
- ChatGPT!我是你的破壁人;比尔·盖茨不看好Web3与元宇宙;FIFA押中4届世界杯冠军;GitHub今日热榜 | ShowMeAI资讯日报
- ChatGPT要收费了;华尔街大裁员;阿里2023十大科技趋势;小红书元宇宙虚拟服饰被吐槽;GitHub今日热榜 | ShowMeAI资讯日报
- AI创业时代!这9个方向有钱途;AIGC再添霸榜应用Lensa;美团SemEval2022冠军方法分享;医学图像处理工具箱… | ShowMeAI资讯日报
- 嘘!P站数据分析年报;各省市疫情感染进度条;爱奇艺推出元宇宙App;You推出AI聊天机器人;GitHub今日热榜 | ShowMeAI资讯日报
- 美国公司裁员潮时间线◉科技寒冬可视化;3份报告回顾中国开发者2022;自动驾驶下半场,谁会冲出重围 | ShowMeAI每周通讯 #005-01.07
- 副业月入过万?数据有话说;扫地机器人发展到哪步了;疫情后要不要重返办公室;淘宝元宇宙直播间;GitHub今日热榜 | ShowMeAI资讯日报
- 大战谷歌!微软Bing引入ChatGPT;羊了个羊40万年薪招研发;Debian彻底移除Python2;GitHub今日热榜 | ShowMeAI资讯日报
- 酸了!乐视工作制改为四天半;高通新年裁员;AI绘画公司开始倒闭;网易入股张艺谋元宇宙公司;GitHub今日热榜 | ShowMeAI资讯日报
- 要么干要么滚!推特开始裁员了;深度学习产品应用·随书代码;可分离各种乐器音源的工具包;Transformer教程;前沿论文 | ShowMeAI资讯日报
- 真实世界的人工智能应用落地——OpenAI篇 ⛵
- 阳过→阳康,数据里的时代侧影;谷歌慌了!看各公司如何应对ChatGPT;两份优质AI年报;本周技术高光时刻 | ShowMeAI每周通讯 #003-12.24
- 用魔法打败魔法!这件毛衣让摄像头看不到你;两款酷炫的AI写作软件;快如闪电的B站下载工具;基于扩散模型的蛋白质设计 | ShowMeAI资讯日报