进入下一轮所需的前三个SQL技能

前三个SQL技能

数据专业人士的技术面试帮助

图片来源:Arnold Francisa at Unsplash

如果你渴望成为数据科学家、数据分析师或数据工程师,并且正在进行面试,那么你很可能会遇到一个或多个需要进行实时编码(通常涉及SQL)的技术面试。虽然后续的面试可能需要使用Python等不同的编程语言,但让我们专注于我在这些面试中遇到的典型SQL问题。为了讨论方便,我将假设你已经熟悉基本的SQL概念,如SELECTFROMWHERE,以及聚合函数如SUMCOUNT。让我们进入具体内容!

1. 掌握连接和表类型

毫无疑问,最常见的SQL问题是关于表连接的。这可能看起来太明显了,但我参与的每个面试都围绕这个主题展开。你应该对内连接和左连接感到自如。此外,熟练处理自连接和并集也是有价值的。同样重要的是,能够在不同的表类型之间执行这些连接,特别是事实维度表。以下是我对这两个术语的宽泛定义:

事实表:包含大量行但相对较少属性或列的表。想象一个例子,一个在线零售商维护着一个名为“orders”的表,其中包含诸如:date, customer_id, order_id, product_id, units, amount等列。这个表具有很少的属性,但包含了大量的记录。

维度表:维度表的行数较少,但有许多属性。例如,同样的在线零售商的“customer”表可能每个顾客只有一行,包含诸如customer_id, first_name, last_name, ship_street_addr, ship_zip_code等属性。

理解这两种主要表类型是很重要的。重要的是要掌握为什么以及如何合并事实表和维度表,以确保准确的结果。让我们考虑一个实际例子:面试题目提供了两个表(“orders”和“customer”)并问道:

有多少客户在其生命周期中至少购买了3个单位,并且有一个邮递区号为90210的送货地址?