FAANG 数据科学访谈中的热门 SQL 模式(带代码)

以下是 FAANG 数据科学访谈中测试的前 5 个 SQL 模式。

来源:KDnuggets
作者图片

# 简介

#

FAANG 公司数据科学职位的技术筛选非常彻底。然而,即使他们也无法想出无穷无尽的独特面试问题。一旦你经历了足够多的磨难,你就会开始注意到一些 SQL 模式不断出现。

这里是前 5 个,带有用于练习的示例和代码 (PostgreSQL)。

作者图片 |餐巾人工智能

掌握这些,您就可以为大多数 SQL 面试做好准备。

# 模式 #1:使用 GROUP BY 聚合数据

通过将聚合函数与 GROUP BY 结合使用,您可以聚合跨类别的指标。

分组依据

此模式通常与数据过滤结合使用,这意味着使用以下两个子句之一:

    WHERE:过滤聚合前的数据。HAVING:过滤聚合后的数据。
  • WHERE:在聚合之前过滤数据。
  • 哪里
  • HAVING:聚合后过滤数据。
  • 示例:此元面试问题要求您查找每个用户在 2020 年 2 月 10 日之前 30 天或更少天内发表的评论总数。没有评论的用户应该被排除在输出之外。

    元面试问题

    我们使用带有 GROUP BY 子句的 SUM() 函数来对每个用户的评论数进行求和。只输出指定时间段内的评论是通过聚合前对数据进行过滤,即使用WHERE来实现的。无需计算“2020-02-10前30天”是哪个日期;我们只需使用 INTERVAL 日期函数从该日期减去 30 天。

    SUM() 间隔
    选择用户 ID,
           SUM(评论数) AS 评论数
    来自 fb_comments_count
    WHERE create_at BETWEEN '2020-02-10'::DATE - 30 * INTERVAL '1 day' AND '2020-02-10'::DATE
    按用户 ID 分组;

    这是输出。

    user_idnumber_of_comments518492......992
    user_idnumber_of_comments 用户 ID 评论数 518492......992 51 5 1 84 8 4 92 9 2 ...... ... 992 99

    商业用途:

  • 用户活动指标:DAU 和 MAU、流失率。
  • 日活跃用户和月活跃用户 流失率
  • 收入指标:每个地区/产品/时间段的收入。
  • # 模式 #2:使用子查询进行过滤

    123 N