SQL 数据分析 · 指南 · 2026年10月30日 · 10 分钟阅读
数据分析师学习路线:学什么、按什么顺序学、需要多长时间

数据分析师的工作是用数据回答业务问题:有多少、多频繁、和什么比、为什么变了。需要的技能也由此而来。先学 SQL,因为几乎每个数据分析岗位都要从数据库里取数。然后是处理结果用的电子表格、让你不至于得出错误结论的统计学基础,以及展示发现用的 BI 或图表工具。Python 有用,但可以晚一点学。一路上,做一个小小的作品集,并准备面试;面试主要考 SQL,以及你如何分析一个业务问题。
需要多长时间,取决于你的起点和投入的时间,而不是课程的宣传。粗略地说,零基础、每天学一个小时左右的人,达到能投初级岗位的水平,通常需要六个月到一年。平时已经在 Excel 里和数字打交道的人往往更快;只有周末能学的人会慢一些。下面的时间都只是大致范围,不是承诺。
路线总览
| 阶段 | 学什么 | 每天约 1 小时的大致时间 |
|---|---|---|
| 1. SQL 基础 | SELECT、WHERE、GROUP BY、JOIN、CASE、NULL |
4–8 周 |
| 2. 电子表格 | 数据透视表、查找函数、图表、数据清洗 | 2–4 周(已经在用 Excel 的话更短) |
| 3. 统计学基础 | 平均数与中位数、分布、百分比、A/B 测试的逻辑 | 4–6 周 |
| 4. 进阶 SQL | 子查询、CTE、窗口函数、日期 | 4–8 周 |
| 5. BI 与可视化 | 一个工具(Power BI、Tableau 或 Looker Studio)、图表选择 | 3–6 周 |
| 6. 业务指标 | 漏斗、留存、同期群、收入指标 | 持续进行,与第 4–5 阶段同步 |
| 7. Python(一开始可选) | pandas、notebook、基础绘图 | 6–10 周 |
| 8. 作品集与面试 | 2–4 个项目、SQL 题、案例题 | 4–8 周 |
各阶段会有重叠。你不必学完统计学才打开 BI 工具;你需要的是一直往前走,一直写查询。
第 1 阶段:SQL 基础(从这里开始)
SQL 排在第一位,有三个实际的理由。几乎每份数据分析师的职位描述里都有它。面试考得最直接的就是它,常常是现场做题。而且它学得快:分析师每天写的核心内容,就是那么几个子句。
按顺序要学的:
SELECT和FROM:选列。WHERE:筛选,包括IN、LIKE、BETWEEN和IS NULL。ORDER BY和LIMIT。- 聚合函数:
COUNT、SUM、AVG、MIN、MAX。 GROUP BY和HAVING。JOIN,尤其是INNER和LEFT的区别,以及一行匹配到多行时会发生什么。- 用于条件判断的
CASE。
这个阶段结束时,你应该不用查任何资料就能回答「每种状态各有多少个航班?」这样的问题:
SELECT status, COUNT(*) AS flights
FROM flights
GROUP BY status
ORDER BY flights DESC;
| status | flights |
|---|---|
| Arrived | 16707 |
| Scheduled | 15383 |
| On Time | 518 |
| Cancelled | 414 |
| Departed | 58 |
| Delayed | 41 |
(本文的例子都在 Nomto SQL 课程的航空公司数据库上运行:2026 年夏季 104 个机场之间的 33,121 个航班。)
比语法更重要的习惯是:写查询之前,先弄清每张表的一行代表什么。大多数错误数字,都来自数的行并不是你以为的那种行。SQL 基础查询语句 一步步讲解了这个阶段的内容。
第 2 阶段:电子表格
你仍然会经常用 Excel 或 Google Sheets:查看查询结果、调整它、快速出图,或者发给不写 SQL 的人。要学数据透视表、查找函数(XLOOKUP 或 VLOOKUP)、条件公式(IF、SUMIFS、COUNTIFS)、基础图表和简单的清洗(去空格、拆分列、修正日期)。
如果你工作中已经在用 Excel,这个阶段可能只要几天而不是几周。它也会让 SQL 更好学:数据透视表就是 GROUP BY,查找函数就是 JOIN。SQL 和 Excel 的区别 把两者一一对应了起来。
第 3 阶段:统计学基础
你不需要统计学学位,只需要足以避开常见错误结论的知识:
- 平均数与中位数。 一笔特别大的订单会把平均数拉高,中位数却不动。要知道什么时候报告哪一个。
- 分布。 看数据的分散程度,而不只看一个数字。一张直方图往往比一个平均数告诉你更多。
- 百分比和比率。 分母是什么?如果航班总数也增加了,「取消数上升了」就说明不了什么。
- 相关不等于因果。 两个数字一起变化,是提出问题的起点,而不是答案。
- A/B 测试的逻辑。 什么是对照组,为什么样本量很重要,置信区间说明了什么(以及没说明什么)。
比率一定要有明确的分母。下面是所有计划航班中被取消的比例:
SELECT ROUND(100.0 * COUNT(*) FILTER (WHERE status = 'Cancelled') / NULLIF(COUNT(*), 0), 2) AS cancelled_pct
FROM flights;
| cancelled_pct |
|---|
| 1.25 |
1.25% 是好是坏,取决于你拿它和什么比:上个月、另一条航线,还是目标值。做这个比较正是分析师的工作。
第 4 阶段:进阶 SQL
基础用熟之后,加上那些能把查询变成分析的工具:
- 子查询和 CTE(
WITH),用于多步逻辑,比如对每日计数求平均。 - 窗口函数:用
ROW_NUMBER分组取前 N,用LAG和上一期比较,累计求和与移动平均。 - 日期函数:截断到周或月、日期之差、补齐没有数据的日子。
这个阶段的典型查询,每日航班数加七日移动平均:
SELECT CAST(scheduled_departure AS DATE) AS day,
COUNT(*) AS flights,
ROUND(AVG(COUNT(*)) OVER (ORDER BY CAST(scheduled_departure AS DATE)
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW), 1) AS avg_7d
FROM flights
WHERE scheduled_departure >= '2026-08-01'
GROUP BY day
ORDER BY day
LIMIT 3;
| day | flights | avg_7d |
|---|---|---|
| 2026-08-01 | 568 | 568 |
| 2026-08-02 | 558 | 563 |
| 2026-08-03 | 536 | 554 |
大多数数据分析师面试都会考窗口函数,所以别跳过。从 SQL 窗口函数详解 开始,练习时把 SQL 速查表 开在旁边。
第 5 阶段:BI 与可视化
选一个 BI 工具好好学,而不是三个都浅尝辄止。Power BI、Tableau 和 Looker Studio 都很常见;看看你想去的地方,职位广告里出现的是哪个。概念是相通的:连接数据、做几张图、加筛选器、发布仪表板。
比工具更重要的是选对图表:随时间的变化用折线图,比较类别用柱状图,饼图超过三块就几乎不要用。一个仪表板应该为特定的人回答一个特定的问题,而不是把能衡量的东西全摆上去。
第 6 阶段:业务指标
这是分析师和「会 SQL 的人」的区别所在。学习常见指标是怎么定义和计算的,并亲手算一算:
- 漏斗:有多大比例的用户从一步走到下一步。
- 留存和同期群:某一周开始使用的人里,有多少人回来了。见 SQL 计算同期群留存。
- 收入指标:平均订单金额、每用户收入、复购率。
- 增长:周环比、月环比,以及为什么不完整的周期会让它们失真。
这些要和第 4、5 阶段同步学,而不是学完再学:它们正是你将来写 SQL、做仪表板要回答的问题。
第 7 阶段:Python,晚点再学
Python 加 pandas 适合做 SQL 不擅长的事:复杂的数据清洗、统计检验、自动化报表、处理文件和 API。很多分析岗位都会列出它。但也有很多初级岗位主要用的是 SQL、电子表格和 BI;在还写不好 GROUP BY 和 JOIN 之前就学 Python,往往会拖慢进度。
学到这一步时,重点放在 pandas(加载、筛选、分组、合并)、Jupyter notebook 和基础绘图上。你会发现,大部分 pandas 操作都有一个你已经会的 SQL 对应写法。
第 8 阶段:作品集与面试准备
作品集
两到四个小而完整的项目,胜过十个做了一半的。一个好项目:
- 从一个问题出发(「哪些航线延误最多,原因在航线本身还是在起飞时段?」),
- 展示你写的查询,
- 给出简短的答案,配一两张图,
- 说明你下一步会检查什么,以及这些数据无法告诉你什么。
公开数据集或课程里的练习数据库都可以。审阅的人看重的是清晰的思路,而不是一个罕见的数据集。
面试
数据分析师面试通常包括:
- SQL 题,常常是现场做:JOIN、分组、一个窗口函数、一个涉及 NULL 或重复值的边界情况。SQL 面试题 覆盖了典型题目。
- 案例题:「上周订单量下降了 10%,你会怎么排查?」考的是你会不会先检查数据、按维度拆解这个数字、思考可能的原因。
- 统计学基础:解读 A/B 测试结果、平均数与中位数。
- 聊你的项目:你发现了什么,哪些地方会换个做法。
计时练习 SQL 题,并且边做边说出思路。SQL 练习题 是一套不错的起点。
一开始可以跳过的
- 数据库管理:索引、备份、权限。以后有用,入门时不需要。
- 机器学习:那是另一个岗位。大多数分析岗位,基础统计就够了。
- 同时学好几个 BI 工具:在工作要求另一个之前,一个就够。
- 高级 Python(类、Web 框架):不是分析师日常工作的一部分。
- 所有 SQL 方言:学一种就好(PostgreSQL 是不错的选择);其他方言只在细节上有差别,用到时查一下即可。
路上常见的错误
- 只看不写。 看视频让人觉得很有收获;真正培养技能的,是写出会报错的查询再把它改对。
- 攒证书而不是做项目。 雇主想看的是你能用数据做什么。
- 学工具却没有问题。 每一条查询、每一张图、每一个 notebook 都应该回答一个具体的问题。
- 跳过数据检查。 报告一个数字之前,先数行数、查重复和 NULL、核对合计是否合理。
- 等到觉得自己准备好了。 一旦能完成第 1–4 阶段,手上有几个项目,就开始投简历;面试本身也是练习。
这周就开始
打开 Nomto 的 SQL 练习场,在航空公司数据库上运行你的第一个查询:什么都不用安装。课程从介绍数据开始,用一节节简短的课讲完基础,每节课都以自动检查的题目结束。大多数日子每天学一小时,比每周一次长时间学习走得更远。
常见问题
没有学位能当数据分析师吗?
很多人都做到了。不同雇主要求不同,但对分析岗位来说,你能展示出来的东西(SQL 能力、作品集、面试中清晰的思路)往往分量很重。有理工或数学类相关学位会有帮助,但不是唯一的路。
先学 SQL 还是先学 Python?
SQL。几乎每个分析岗位都用它,面试直接考它,而且你能更快地用它做出有用的东西。等你熟练掌握 JOIN、分组和窗口函数之后,再加上 Python。
成为数据分析师需要多长时间?
取决于你的背景和投入的时间。零基础、每天约一小时的话,六个月到一年达到能投初级岗位的水平,是一个现实的范围。之前用过 Excel 或做过与数字打交道的工作,会缩短这个时间。
数学需要很好吗?
你需要熟悉百分比、平均数、比率和基础统计,不需要高等数学。仔细思考一个数字意味着什么,比计算本身更重要。
应该学哪个 BI 工具?
看看你想工作的市场里的职位广告,选出现最多的那个。Power BI、Tableau 和 Looker Studio 都很常见,概念在它们之间是相通的。
其他语言: English, Español, Português (Brasil), Tiếng Việt