您当前的位置:首页 > 互联网百科 > 大数据

数据科学面试中,面试官一般会问我们哪些SQL概念?

时间:2020-07-22 10:32:12  来源:  作者:

SQL有很多非常强大的功能,但是在数据科学的面试中,大多数公司只会问你少数几个核心概念。下文中的10个概念是面试中最常出现并且在现实生活中的应用最多的。

数据科学面试中,面试官一般会问我们哪些SQL概念?

 

在本文中,我将给大家带来我认为的10个最重要SQL概念。如果你正在准备数据科学面试时,你可以集中时间在理解这些概念上。

1.CASE WHEN

你可能会看到很多需要使用CASE WHEN语句的问题,这只是因为它是一个多功能的概念。

如果要根据其他变量分配某个值或类,则可以使用它编写复杂的条件语句。

很多人不知道的是,该语句还允许我们透视数据。例如,如果你有一个 month 列,并且希望为每个月创建一个单独的列,则可以使用CASE WHEN语句来透视数据。

示例问题:编写一个SQL查询来重新格式化表,以便每个月都有一个revenue列。

Initial table:
+------+---------+-------+
| id   | revenue | month |
+------+---------+-------+
| 1    | 8000    | Jan   |
| 2    | 9000    | Jan   |
| 3    | 10000   | Feb   |
| 1    | 7000    | Feb   |
| 1    | 6000    | Mar   |
+------+---------+-------+

Result table:
+------+-------------+-------------+-------------+-----+-----------+
| id   | Jan_Revenue | Feb_Revenue | Mar_Revenue | ... | Dec_Revenue |
+------+-------------+-------------+-------------+-----+-----------+
| 1    | 8000        | 7000        | 6000        | ... | null        |
| 2    | 9000        | null        | null        | ... | null        |
| 3    | null        | 10000       | null        | ... | null        |
+------+-------------+-------------+-------------+-----+-----------+

2.SELECT DISTINCT

SELECT DISTINCT 是你一定要时刻牢记的东西,最常见的用法是将 SELECT DISTINCT 语句与聚合函数进行结合。

例如,如果我们有一个显示客户订单的表,则可能会要求我们计算每个客户的平均订单数。在这种情况下,我们希望将订单总数计入客户总数中。如下所示:

SELECT
   COUNT(order_id) / COUNT(DISTINCT customer_id) as orders_per_cust
FROM
   customer_orders

3.聚合函数

在这里可以和上面的第2点相结合,你需要对聚合函数有很强的理解,比如 min,max,sum,count 等等…这也意味着你应该对 groupby 和 HAVING 子句有很好的理解。我强烈建议你花点时间来解决实践问题,因为有一些创造性的方法可以使用聚合函数。

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

+----+---------+
| Id | Email   |
+----+---------+
| 1  | a@b.com |
| 2  | c@d.com |
| 3  | a@b.com |
+----+---------+

  ANSWER:
SELECT
    Email
FROM
    Person
GROUP BY
    Email
HAVING
    count(Email) > 1

4.左连接与内部连接

对于那些对 SQL 比较陌生或有一段时间没有使用过 SQL 的人来说,很容易混淆左连接和内部连接,我们必须清楚地理解每个连接如何获得不同的结果。在许多面试问题中,你都会被要求做一些连接,在某些情况下,选择左或者右,都关系到正确和错误的答案。

5.自连接

SQL一般会通过自联接将表与自身进行联接,你可能会认为这没用,但是很快你就会为之感到惊讶。在许多实际设置中,数据存储在一个大表中,而不是许多小表中。在这种情况下,可能需要自连接来解决独特的问题。

让我们看一个例子。

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

+----+-------+--------+-----------+
| Id | Name  | Salary | ManagerId |
+----+-------+--------+-----------+
| 1  | Joe   | 70000  | 3         |
| 2  | Henry | 80000  | 4         |
| 3  | Sam   | 60000  | NULL      |
| 4  | Max   | 90000  | NULL      |
+----+-------+--------+-----------+

  Answer:
SELECT
    a.Name as Employee
FROM
    Employee as a
        JOIN Employee as b on a.ManagerID = b.Id
WHERE a.Salary > b.Salary

6.子查询

子查询,也称为内部查询或嵌套查询,是查询中的查询,并且嵌入在WHERE子句中。 这是解决需要按顺序进行多个查询才能产生给定结果的独特问题的好方法。子查询和 WITH AS 语句在查询时都非常有用,因此你一定要知道如何使用它们。

示例问题:假设一个网站包含两个表,Customers 表和 Orders 表。 编写SQL查询,用来查找所有从不订购任何商品的客户。

Table: Customers.
+----+-------+
| Id | Name  |
+----+-------+
| 1  | Joe   |
| 2  | Henry |
| 3  | Sam   |
| 4  | Max   |
+----+-------+

  Table: Orders.
+----+------------+
| Id | CustomerId |
+----+------------+
| 1  | 3          |
| 2  | 1          |
+----+------------+

  Answer:
SELECT
    Name as Customers
FROM 
    Customers
WHERE
    Id NOT IN (
        SELECT 
            CustomerId 
        FROM Orders
    )

7.字符串格式化

字符串函数非常重要,尤其是在处理不干净的数据时。 因此,很多公司在面试时可能会在字符串格式和操作方面对你进行测试,来检测你是否知道如何操作数据。

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

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

8.日期时间操作

在日常工作中,你肯定遇到过涉及日期和时间数据的SQL问题。例如,让你按照月份对数据进行分组,或者将变量格式从DD-MM-YYYY转换为简单的月份。

以下为应该知道的函数:

  • EXTRACT
  • DATEDIFF

示例问题:给定一个天气表,编写一个SQL查询来查找与之前(昨天)日期相比温度更高的所有日期的id。

+---------+------------------+------------------+
| Id(INT) | RecordDate(DATE) | Temperature(INT) |
+---------+------------------+------------------+
|       1 |       2015-01-01 |               10 |
|       2 |       2015-01-02 |               25 |
|       3 |       2015-01-03 |               20 |
|       4 |       2015-01-04 |               30 |
+---------+------------------+------------------+

  Answer:
SELECT
    a.Id
FROM
    Weather a,
    Weather b
WHERE
    a.Temperature > b.Temperature
    AND DATEDIFF(a.RecordDate, b.RecordDate) = 1

9.Window函数

Window函数允许我们对所有行执行聚合值,而不是只返回一行(groupby语句就是这样做的)。在我们要对行进行排序、计算累计和等等操作时,Window函数会非常有用。

示例问题:编写一个 SQL 查询用于获取薪水最高的 empno,以便确保方案可以处理其中的关系!

depname  | empno | salary |     
-----------+-------+--------+
 develop   |    11 |   5200 | 
 develop   |     7 |   4200 | 
 develop   |     9 |   4500 | 
 develop   |     8 |   6000 | 
 develop   |    10 |   5200 | 
 personnel |     5 |   3500 | 
 personnel |     2 |   3900 | 
 sales     |     3 |   4800 | 
 sales     |     1 |   5000 | 
 sales     |     4 |   4800 |

  Answer:
WITH sal_rank AS 
  (SELECT 
    empno, 
    RANK() OVER(ORDER BY salary DESC) rnk
  FROM 
    salaries)
SELECT 
  empno
FROM
  sal_rank
WHERE 
  rnk = 1;

10.UNION

UNION 不经常出现,但偶尔还是会有人问你这个问题,一般情况下,我们了解这个功能也是是很好的。如果你有两个具有相同列的表,并且想把它们组合在一起,这时就可以用 UNION 了。

PS.如果你不能百分之百确定UNION的工作原理,记得找相关的教程来学习。

--END--

希望以上内容对你的求职面试有所帮助,如果你从内而外地了解这10个概念,那么在面对大多数SQL问题时,都能做得很好。

数据科学面试中,面试官一般会问我们哪些SQL概念?

 

参考链接:https://towardsdatascience.com/ten-sql-concepts-you-should-know-for-data-science-interviews-7acf3e428185

喜欢本文的同学记得转发+点赞~



Tags:数据科学   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
JetBrains 宣布,全新数据科学 IDE DataSpell 已正式发布!DataSpell 是 JetBrains 的新 IDE,专为参与探索性数据分析和 ML 模型原型设计的人员而设计。DataSpell 在一个符合人体...【详细内容】
2021-12-15  Tags: 数据科学  点击:(25)  评论:(0)  加入收藏
如果您想使用甚至掌握数据分析技能的话,Python一定是您的最佳选择。它不但容易被学习,而且具有广泛且活跃的社区支持。目前,大多数数据科学库、以及机器学习框架,都能够提供Pyth...【详细内容】
2021-07-29  Tags: 数据科学  点击:(91)  评论:(0)  加入收藏
Python是最流行和最广为人知的编程语言之一,它已取代了业界的许多编程语言。它是数据科学专业人士最喜欢使用的编程语言之一,因为它拥有庞大的库。Python因其简单易用而被称...【详细内容】
2020-08-03  Tags: 数据科学  点击:(79)  评论:(0)  加入收藏
作者:RAM DEWANI翻译:欧阳锦校对:陈汉青本文长度为4600字,建议阅读11分钟本文为大家从两个方面——大数据和数据科学,介绍了本年度的22个被广泛使用的数据科学和机器学...【详细内容】
2020-07-31  Tags: 数据科学  点击:(83)  评论:(0)  加入收藏
全文共1769字,预计学习时长6分钟图源:unsplash互联网诞生早期,创建网站是一门高端技术活。而现在,Wordpress这样的无代码工具让每个人都能迅速地创建一个网站。如今已有超50亿的...【详细内容】
2020-07-26  Tags: 数据科学  点击:(82)  评论:(0)  加入收藏
SQL有很多非常强大的功能,但是在数据科学的面试中,大多数公司只会问你少数几个核心概念。下文中的10个概念是面试中最常出现并且在现实生活中的应用最多的。 在本文中,我将给大...【详细内容】
2020-07-22  Tags: 数据科学  点击:(110)  评论:(0)  加入收藏
现实世界中的机器学习解决方案很少只是构建和测试模型的问题。 到目前为止,从训练到优化,管理和自动化机器学习模型的生命周期是机器学习解决方案中最难解决的问题。 为了...【详细内容】
2020-06-27  Tags: 数据科学  点击:(104)  评论:(0)  加入收藏
1 说明:===初探===1.1 Streamlit1.1.1 是一个开源Python库,可轻松构建用于机器学习的漂亮应用程序。1.1.2 是一款专为机器学习工程师创建的免费、开源 app 构建框架。1.1.3 是...【详细内容】
2020-06-21  Tags: 数据科学  点击:(316)  评论:(0)  加入收藏
关于人工智能(AI),数据科学和分析的定义存在很多混乱,这对于正在考虑专门研究这些领域的学生和早期职业人士尤其有害。 本文旨在消除这种混乱。在有关"人工智能:一种现代方法"(Rus...【详细内容】
2020-06-12  Tags: 数据科学  点击:(141)  评论:(0)  加入收藏
作为数据科学家,我们对pandas、SQL或任何其他关系数据库非常熟悉。...【详细内容】
2019-12-31  Tags: 数据科学  点击:(32)  评论:(0)  加入收藏
▌简易百科推荐
前言什么是数据脱敏数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护常用脱敏规则替换、重排、加密、截断、掩码良好的数据脱敏实施1、尽...【详细内容】
2021-12-28  linyb极客之路    Tags:数据脱敏   点击:(2)  评论:(0)  加入收藏
张欣安科瑞电气股份有限公司 上海嘉定 201801 摘要:随着电力行业各系统接入,海量数据涌现,如何利用电网信息化中大量数据,对客户需求进行判断分析,服务于营销链条,提升企业市场竞...【详细内容】
2021-12-14  安科瑞张欣    Tags:大数据   点击:(10)  评论:(0)  加入收藏
1、什么是数据分析结合分析工具,运用数据分析思维,分析庞杂数据信息,为业务赋能。 2、数据分析师工作的核心流程:(1)界定问题:明确具体问题是什么;●what 发生了什么(是什么)●why 为...【详细内容】
2021-12-01  逆风北极光    Tags:大数据   点击:(26)  评论:(0)  加入收藏
在实际工作中,我们经常需要整理各个业务部门发来的数据。不仅分散,而且数据量大、格式多。单是从不同地方汇总整理这些原始数据就花了大量的时间,更不用说还要把有效的数据收集...【详细内容】
2021-11-30  百数    Tags:数据   点击:(21)  评论:(0)  加入收藏
数据作为新的生产要素,其蕴含的价值日益凸显,而安全问题却愈发突出。密码技术,是实现数据安全最经济、最有效、最可靠的手段,对数据进行加密,并结合有效的密钥保护手段,可在开放环...【详细内容】
2021-11-26  炼石网络    Tags:数据存储   点击:(17)  评论:(0)  加入收藏
导读:网易大数据平台的底层数据查询引擎,选用了Impala作为OLAP查询引擎,不但支撑了网易大数据的交互式查询与自助分析,还为外部客户提供了商业化的产品与服务。今天将为大家分享...【详细内容】
2021-11-26  DataFunTalk    Tags:大数据   点击:(15)  评论:(0)  加入收藏
导读:数据挖掘是一种发现知识的手段。数据挖掘要求数据分析师通过合理的方法,从数据中获取与挖掘项目相关的知识。作者:赵仁乾 田建中 叶本华 常国珍来源:华章科技数据挖掘是一...【详细内容】
2021-11-23  华章科技  今日头条  Tags:数据挖掘   点击:(20)  评论:(0)  加入收藏
今天再给大家分享一个不错的可视化大屏分析平台模板DataColour。 data-colour 可视化分析平台采用前后端分离模式,后端架构设计采用微服务架构模式。 前端技术:Angularjs、Jq...【详细内容】
2021-11-04  web前端进阶    Tags:DashboardClient   点击:(40)  评论:(0)  加入收藏
在Kubernetes已经成了事实上的容器编排标准之下,微服务的部署变得非常容易。但随着微服务规模的扩大,服务治理带来的挑战也会越来越大。在这样的背景下出现了服务可观测性(obs...【详细内容】
2021-11-02  大数据推荐杂谈    Tags:Prometheus   点击:(40)  评论:(0)  加入收藏
同一产品对老客户的要价竟然比新客户要高?这是当下“大数据杀熟”的直接结果。近年来,随着平台经济的蓬勃发展,大数据在为用户服务之外,也引发了多种不合理现象。为了有效遏制“...【详细内容】
2021-10-29    海外网   Tags:大数据   点击:(31)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条