乐趣区

关于sql:求职指南给数据开发的SQL面试准备路径⛵

大量的数据迷信职位须要精通 SQL,它也是数据分析师、数据科学家、数据建模岗最常考核的面试技能。在本篇内容中 ShowMeAI 将梳理汇总所有面试 SQL 问题,依照不同的主题构建练习专项块。


💡 作者:韩信子 @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 速查表

💡 学习打算

💦 第 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 语句依据一列或多列的值对行进行分组,每组返回一行。分组之后能够对每个组执行聚合函数,例如 SUMCOUNT

  • 📘分组和聚合: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 名
退出移动版