SQL 窗口函数面试题
SQL 窗口函数面试题
这里有一篇文章帮助你回答需要了解 SQL 窗口函数的 SQL 面试问题
Image created by the author on 帆布
如果你想从事数据科学工作——如果你不这样做你就不会读这篇文章——你必须至少精通两个领域:SQL 和工作面试。是的,两者都是需要练习的技能。
当我们说 SQL 时,这是一个如此广泛的领域,即使是它的创建者也可能不知道它的一切。告诉你应该学习“完整”的 SQL 来获得一份数据专业人员的工作是没有意义的。为什么?因为你不必!骑自行车、游泳、看书。盯着墙壁看油漆变干比学习“整个”SQL 更好。
你需要的是强大的知识 一些 SQL 概念。您将在实践中使用的那些。窗口函数就是其中之一。面试官喜欢他们,你也会喜欢他们,因为他们真的会让你的日常工作更轻松。
那么工作面试呢?怎么是技能?这不只是你必须经历的可怕事件才能找到工作吗?是的。但不仅如此!当我们谈论它是一种技能时,我们的意思是有一个清晰的方法来回答 SQL 问题。
编写正确的 SQL 代码很重要,不要误会我们的意思。但是,有一个解决面试问题的概述框架同样重要。这不是委婉说法。有一个好的框架,你会更容易写出完美的代码。即使你把它搞砸了,而且每个人有时都会这样做,你也会得到你的过程和思维方式的分数。
无论如何,什么是 SQL 窗口函数?
你还不知道?不用担心,有一个 SQL 窗口函数 指导您在哪里学到比您想知道的更多的东西。
对于那些已经熟悉窗口函数的人,在我们去解决 SQL 窗口函数面试问题之前做一个简短的提醒。
窗口函数通常被视为更高级的版本 SQL 聚合函数 .您已经知道,聚合函数从多行获取值并返回一个值。是的,这是数据聚合。最流行的聚合函数是 SUM()、COUNT()、AVG()、MIN() 和 MAX()。
它们经常用在 GROUP BY 子句中。这样,数据可以聚合在多个列上,从而扩展了聚合函数的分析可能性。
但是,它们仍然不保留作为聚合基础的各个行。窗口函数可以,这是两者之间的主要区别!换言之,SQL 窗口函数允许您聚合数据并显示聚合背后的分析背景。
但是,窗口函数远不止这些。它们大致分为三类:
- 聚合窗口函数
- 排名窗口函数
- 值窗函数
您可以在上述指南中阅读有关它们的所有信息。我们在这里向您展示实际示例,而不是让您厌烦理论。因此,让我们设置解决 SQL 窗口函数面试问题的方法,看看如何将其应用于测试您的窗口函数知识的问题。
如何处理 SQL 窗口函数面试问题?
Image created by the author on 帆布
构成解决问题的“正确”方法的唯一因素是使其结构化。所有其他事情都不太相关。该方法因人而异,并且将基于您的想法以及您对哪种方法感到满意。
我们被证明是成功的方法包括以下步骤。
- 探索数据集
- 识别用于解决问题的列
- 写出代码逻辑
- 编码
1. 探索数据集
面试问题通常有一个具体的数据集,您应该使用它来提出解决方案。
数据的设置方式可以测试某些 SQL 概念。总是需要一些时间来了解数据类型并检查数据是否存在重复、NULL 值或缺失值。这一切都会影响您的代码和您必须使用的功能。
如果有多个表,请检查表是如何互连的,如何连接它们,以及应该使用哪个 JOIN。
这并不总是可行的,但如果可以,请预览数据本身。它将帮助您获得更清晰的画面,并且可能会通过仅查看列名和数据类型来找到您可能错过的东西。
2. 确定用于解决问题的列
少即是多,但通常就足够了!大多数问题会为您提供比编写解决方案所需的更多数据。使用此步骤删除您不需要的列并记下您需要的列。
3.写出代码逻辑
这字面意思是它听起来如何:将代码分成逻辑块并将它们写成步骤。通常,“逻辑”是指您将使用的功能。对步骤进行编号,写下功能,并简要描述您将如何以及为什么使用它。
如果需要,您也可以编写伪代码,您只需填写面试问题中的实际数据即可。
在您编写代码逻辑时,请使用此步骤与面试官核实您是否朝着正确的方向前进。一旦你写出了代码逻辑,编码将几乎是一种技术性。
4. 编码
大部分的思考都是在前面的步骤中完成的。这将使代码编写更加容易,因为您已经考虑了大部分问题。现在您可以专注于编写高效的代码并拥有更多带宽来处理出现的任何问题。
SQL 面试题中的窗口函数
Image created by the author on 帆布
现在,你们一直在等待的东西:解决实际的 SQL 窗口函数面试问题!
问题 #1 聚合窗口函数:平均工资
创建类似于 Salesforce 所需的分析是非常常见的,它是窗口函数与聚合函数的相似和不同的完美示例。
如果您想跟随我,这是问题链接: https://platform.stratascratch.com/coding/ 9917-平均工资
解决方法
1. 探索数据集
给你一张桌子 员工 具有以下列和数据类型。
这是一个相当标准的表格,其中包含有关公司员工的数据。我们最感兴趣的是他们的薪水,表格记录这些数据的方式有两种:
- 显示历史工资
- 显示最新的实际工资
第一种情况意味着员工和所有其他数据可能是重复的,同一员工的工资值不同。
第二个选项是这里没有重复的员工,即每个员工只出现一次。
我们不知道,但我们可以问面试官,甚至更好
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明