前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据科学面试中你应该知道的十个SQL概念

数据科学面试中你应该知道的十个SQL概念

作者头像
人工智能小咖
修改2020-08-03 10:58:23
1.2K0
修改2020-08-03 10:58:23
举报
文章被收录于专栏:人工智能小咖人工智能小咖
图片来源:macrovector,www.freepik.co
图片来源:macrovector,www.freepik.co

SQL非常强大,且具有多种功能。然而,当涉及到数据科学面试时,大多数公司只测试其少数核心概念。以下这10个概念因其在实际中应用最多,而最常出现。

本文将讨论10个最重要的SQL概念。在准备面试时,你应该主要关注这些概念。

开始吧!

1. CASE WHEN

许多问题都可能需要使用CASE-WHEN语句,仅仅是因为这个概念功能如此之多。

在根据其他变量分配某个值或类时,用CASE-WHEN可以编写复杂的条件语句。

鲜为人知的是,用它还可以透视数据。例如,如果你已有“月(month)”列,又希望为每个month创建一个单独的列,则可以使用CASE WHEN语句来透视数据。

示例问题:编写一个SQL查询重新排列表样式,以使每个月对应一个收入栏。

2. SELECT DISTINCT

SELECT DISTINCT语句是一定要记牢的。将SELECT DISTINCT语句与聚合函数(即第三个概念)一起使用是非常常见的。

例如,如果你有一个客户订单的数据表,则可能会被要求计算每个客户的平均订单数。在本例中,需要计算订单的总数除以客户的总数。像这样:

3. 聚合函数

聚合函数跟第二个概念相关,因此你需要对这类函数的功能有深刻理解,比如min,max,sum,count等等……这也意味着你应该好好理解GROUP BY和HAVING子句。强烈建议你花点时间去解决实际问题,因为在一些创造性的方法中会用到聚合函数。

示例问题:编写一个SQL查询,在名为Person的表中找出所有重复的电子邮件。

4. 左连接 vs 内连接

对于那些对SQL比较陌生或有一段时间没有使用过SQL的人来说,他们很容易混淆左连接和内连接。请确保你能清楚理解每个连接如何获得不同的结果。许多面试问题会要求你做一些连接。在某些情况下,选择了一个而非另一个,即是正确和错误之差。

5. 自连接

现在来了解一下更有趣的东西!SQL自连接将表与其自身联接。你可能会认为这没用,但你会讶于其普遍性。在许多实际应用中,数据存储在一个大表中,而不是许多小表中。在这种情况下,可能需要自连接来解决特定的问题。

一起来看一个例子。

示例问题:给定下面的Employee表,编写一个SQL查询,找出收入高于经理的员工。在上表中,乔(Joe)是唯一收入高于经理的员工。

6. 子查询

子查询也称为内部查询或嵌套查询,是查询内查询,会被嵌入到WHERE子句中。这是种好方法,可以解决需要多次按序查询以生成给定结果的特殊问题。子查询和WITH AS语句在查询中的使用次数都非常多,因此你需要知道如何使用它们。

示例问题:假设一个网站包含两个数据表,Customers表和Orders表。编写一个SQL查询来找出所有从未订购过的客户。

7. 字符串格式化

字符串函数非常重要,尤其是在处理不清晰的数据时。因此,公司可能会考察你字符串的格式化和处理,以确保你懂得如何处理数据。

字符串格式化包括以下内容:

  • LEFT, RIGHT
  • TRIM
  • POSITION
  • SUBSTR
  • CONCAT
  • UPPER, LOWER
  • COALESCE

8. 日期时间处理

你肯定会遇到一些涉及日期和时间数据的SQL问题。例如,你也许需要按月份对数据分组,或者将变量格式从DD-MM-YYYY转换为简单的月份。

须知的函数:

  • EXTRACT
  • DATEDIFF

示例问题:给定一个Weather表,编写一个SQL查询以找出所有高于之前(昨天)温度的日期Id。

9. 窗口函数

窗口函数使你能对所有行执行聚合值,而不是只返回一行(这是GROUP BY语句的用处)。这对于行排序、计算累计等等十分有用。

示例问题:编写一个查询以获取薪水最高的empno。确保解决方案可以处理关系!

10. UNION

作为奖励,第10条是UNION!虽然它不常出现,但偶尔会有人问你这点,所以了解一下总归是好的。如果你有两个含有相同列的表,又希望将它们组合在一起,这时就可以使用UNION。

再说一次,如果你不能百分百确定如何操作它,请通过谷歌搜索来快速了解。

感谢阅读!

介绍结束!希望这对你的面试准备过程有所帮助,并祝你在未来一切顺利。我相信,如果对这10个概念了如指掌,那么你就可以应对面试中的大多数SQL问题了。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. CASE WHEN
  • 2. SELECT DISTINCT
  • 3. 聚合函数
  • 4. 左连接 vs 内连接
  • 5. 自连接
  • 6. 子查询
  • 7. 字符串格式化
  • 8. 日期时间处理
  • 9. 窗口函数
  • 10. UNION
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档