作者:韩信子@ShowMeAI
数据分析实战系列:https://www.showmeai.tech/tutorials/40
AI 面试题库系列:https://www.showmeai.tech/tutorials/48
本文地址:https://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制作的速查表,快学快用:
- 编程语言速查表 | SQL 速查表
这个板块主要针对 SQL 的SELECT
语句,掌握使用它从一个或多个表中选择列字段,配合WHERE
语句设定一个或多个条件。
SQL中有 4 种主要的连接类型: INNER JOIN
(或者 JOIN
), LEFT JOIN
/ RIGHT JOIN
, FULL OUTER JOIN
, 和 CROSS JOIN
。
SQL中的UNION
函数将两个或多个 select 语句的结果集组合成一个结果。
SQL UNION ALL
函数保留重复的行。
SQL中GROUP BY
语句根据一列或多列的值对行进行分组,每组返回一行。分组之后可以对每个组执行聚合函数,例如 SUM
和 COUNT
。
SQL HAVING
子句为定义的组指定条件 GROUP BY
. 这通常用于过滤由分组和聚合产生的行。
SQL CASE
语句判断符合的条件并返回该条件下对应的结果,类似在其他编程语言中的if
语句。
SQL 子查询是嵌套在另一个查询中的查询,我们可以把一个查询的结果,用到另一个查询中。
SQL中的UPDATE
语句用于更改表中的现有数据。
SQL中的DELETE
语句用于从表中删除一行或多行。
SQL中有很多字符串处理函数,例如UPPER
, LOWER
, CONCAT
, GROUP_CONCAT
, TRIM
,以及正则表达式的使用。 熟悉一些常见的 SQL 字符串函数 在这里 。
SQL中
FIRST_VALUE()
和 LAST_VALUE()
分析函数分别返回一组有序值中的第一个值和最后一个值;LAG()
窗口函数提供对前一行或多行数据的访问;LEAD()
窗口函数提供对下一行或多行数据的访问。对应考题
常用&面试常考的RANK窗口函数是 ROW_NUMBER()
, RANK()
, DENSE_RANK()
和 NTILE()