🎁 立即注册,最多可免费使用 30 分钟在线 AI,无需信用卡。

数据分析师面试题:30 道题及答案,附 SQL 示例

October 23, 2026
30 道数据分析师面试题及参考答案:包括带完整查询的 SQL、Excel、统计学、数据清洗、可视化、业务案例题和行为题,并介绍如何准备一个作品集项目。
数据分析师在求职面试中讲解仪表盘
数据分析师面试题
数据分析师面试题及答案
数据分析师 SQL 面试题
数据分析面试

数据分析师面试通常会结合三个部分:技术考核(SQL、Excel,有时还有 Python)、业务案例(用数据推理一个问题),以及关于你做过的项目的行为题。面试官想看到的是,你能拿到正确的数字,解释它们的含义,并帮助别人做出决策。下面是 30 道数据分析师面试题,附有参考答案和完整的 SQL 示例。

面试官在看什么

领域他们想看到什么
SQL 与工具正确、易读的查询;熟悉连接和聚合
数据质量在相信一个数字之前,先检查其中的问题
业务感觉你能把分析与决策联系起来
沟通能力你能向非技术人员简单地解释结果
好奇心你会追问“为什么”,并深入挖掘数据

SQL 题

这些示例使用两张表:

  • orders(order_id, customer_id, order_date, amount)
  • customers(customer_id, name, signup_date)

1. 找出总营收最高的两位客户

SELECT customer_id, SUM(amount) AS revenue
FROM orders
GROUP BY customer_id
ORDER BY revenue DESC
LIMIT 2;

2. 找出从未下过订单的客户

SELECT c.customer_id, c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.customer_id
WHERE o.order_id IS NULL;

解释为什么 LEFT JOIN 配合 IS NULL 可以实现这一目的:它保留了每一位客户,并在没有匹配的地方让订单列留空。

3. 找出每位客户的第二大订单

SELECT customer_id, order_id, amount
FROM (
  SELECT customer_id, order_id, amount,
         ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY amount DESC) AS rn
  FROM orders
) ranked
WHERE rn = 2;

说明当数值相同时,ROW_NUMBER、RANK 和 DENSE_RANK 之间的区别。

4. 计算每月营收

SELECT DATE_TRUNC('month', order_date) AS month, SUM(amount) AS revenue
FROM orders
GROUP BY 1
ORDER BY 1;

DATE_TRUNC 是 PostgreSQL 的语法;在 SQLite 中你会使用 strftime('%Y-%m', order_date),其他数据库则有各自的函数。回答时要说明你使用的是哪种方言。

5. WHERE 和 HAVING 有什么区别?

WHERE 在分组之前过滤行;HAVING 在聚合之后过滤分组。

6. 连接有哪些类型?

内连接、左连接、右连接和全外连接;说明各自的使用场景,以及未匹配的行会怎样处理。

7. 你会如何找出重复的记录?

按应该唯一的列进行分组,并用 HAVING COUNT(*) > 1 进行过滤。

8. 什么是窗口函数?你会在什么时候使用它?

它是在相关行之间进行的计算,且不会把这些行合并成一行,例如累计求和、排名,或将每一行与前一行进行比较。

Excel 与电子表格

9. VLOOKUP 和 XLOOKUP(或 INDEX/MATCH)有什么区别?

XLOOKUP 和 INDEX/MATCH 可以向左查找,对缺失值的处理更灵活,并且在列位置变动时不会出错。

10. 你如何使用数据透视表?

用来快速按类别汇总数据,例如按地区和月份统计营收。

11. 你会如何清理一份杂乱的电子表格?

删除重复项,统一格式(日期、文本大小写),处理空白单元格,并检查异常值。

统计学

12. 均值和中位数有什么区别?你会在什么时候使用各自?

当数据呈偏态分布时,中位数更合适,例如收入或订单金额。

13. 什么是 p 值?

如果真的不存在任何效应,观察到至少与当前结果一样极端的结果的概率。p 值较小意味着这个结果不太可能仅仅是偶然,但它并不能告诉你效应的大小或重要程度。

14. 相关与因果有什么区别?

两个变量同向变化,并不意味着一个导致了另一个;可能存在第三个因素,或者只是巧合。实验有助于确立因果关系。

15. 你会如何设计一个 A/B 测试?

确定指标和假设,决定样本量,随机分配用户,在固定的时间段内运行,并检验统计显著性和实际影响。

16. 什么是异常值?你会如何处理?

先调查再决定是否移除;它可能是错误,也可能是真实而重要的情况。

数据清洗与质量

17. 你会如何处理缺失数据?

先弄清楚数据为什么缺失,然后再决定:删除、用合理的值填充,或者标记出来。并说明这些处理对结果的影响。

18. 你如何判断一个数据集是否可靠?

将行数与数据源进行核对,检查总计能否对得上,查看日期范围和重复项,并做抽样检查。

19. 讲一次你发现数据错误的经历

用一个简短的 STAR 故事,说明你是如何从源头上修复它的。

可视化与仪表盘

20. 你如何选择合适的图表?

用折线图展示随时间的趋势,用柱状图比较各类别,用散点图展示关系;避免使用分块过多的饼图。

21. 你会如何为高管设计仪表盘?

顶部放几个关键指标,然后是趋势图,标签要清晰,只在必要的地方加入筛选器。

22. 你用过哪些 BI 工具?

说出名称,以及你做过的一个仪表盘。可参阅我们的 Power BI 面试题。

业务案例题

23. 上周注册人数下降了 20%。你会如何调查?

“我首先会检查埋点和数据加载是否正常,确认下降确实存在。然后按平台、国家、流量来源和注册步骤进行对比,找出下降发生在哪里。如果问题集中在某一个渠道或某一步,我会检查那里是否有变化,比如某个活动结束或网站发布了新版本。我会分享我的发现,以及我们仍然不清楚的部分。”

24. 你会如何衡量一个新功能的效果?

确定目标,选择一个主要指标和若干护栏指标,并与对照组或上线前后的时间段进行比较。

25. 你会为一家线上商店跟踪哪些指标?

流量、转化率、客单价、复购率和获客成本。

26. 你会如何向非技术背景的经理解释一个复杂的发现?

先给出结论和它的影响,使用一张简单的图表,并把方法部分说得简短。

行为题

27. 讲一次改变了决策的分析

问题是什么,用了哪些数据,你发现了什么,以及因此改变了什么。

28. 描述一次你不得不使用不完整数据工作的经历

说明你做了哪些假设,以及你是如何沟通这些假设的。

29. 当多个利益相关者提出请求时,你如何排定优先级?

依据业务影响和紧急程度,并与利益相关者或你的经理达成一致。

30. 讲一次你的分析出错的经历

承认错误,修正它,并说明你现在会检查哪些内容。

关于如何组织这些故事,可参阅我们的 STAR 方法指南。

准备一个有分量的作品集项目

部分应包括的内容
问题一个清晰的业务问题
数据数据来源、规模,以及你如何清洗它
方法SQL、电子表格或 Python 的步骤
发现一到两个清晰的结果,配一张图表
决策基于它,别人应该采取什么行动

如何准备

  1. 连续两周每天练习 SQL:连接、聚合和窗口函数。
  2. 复习基础统计:平均数、分布、A/B 测试、p 值。
  3. 准备一个作品集项目和三个 STAR 故事。
  4. 大声练习一个“这个指标为什么变化了”的案例。
  5. 研究公司的产品,以及它可能关注的指标。

如果是相关岗位,可参阅业务分析师面试题和 Python 面试题。如果你想借助工具来准备,我们的数据分析师面试 AI 工具汇总比较了各种选择。

练习 SQL 讲解和案例回答

用 YesToTheOffer 结合你的简历和职位描述,大声演练技术题和案例题,并回看你的转录内容。免费 30 分钟,无需订阅。

iOS & Android — 即将推出
查看价格