1. 这场笔试到底在考什么
1.1 从岗位需求倒推考察维度
聊腾讯数据分析岗的秋招笔试,得先搞清楚这个岗位进去之后到底干什么。我后来跟不少在大厂做数据分析的朋友交流过,也自己带过几个校招生,发现一个规律:笔试考什么,完全取决于岗位日常需要什么能力。数据分析师在腾讯这种体量的公司里,日常无非是几件事——看业务数据找问题、写SQL取数、做AB实验评估、出分析报告给业务方做决策参考。所以笔试的考察维度基本就锁定了四块:统计概率基础、SQL查询能力、业务逻辑推理、数据敏感度。
很多人一上来就刷算法题,方向就偏了。数据分析岗不是算法岗,笔试里编程题的比重远没有SQL和统计大。我见过有同学花两个月刷LeetCode Hard,结果笔试里SQL一道窗口函数没写出来,直接挂掉。这不是能力问题,是方向问题。
1.2 题型分布与时间压力的真实体感
根据我和身边人参加过的几次腾讯数据分析笔试来看,题型大致是:选择题(统计+概率+业务常识)约20道,SQL编程题2-3道,业务分析简答题1-2道,偶尔会有Python数据处理的小题。总时长一般在120分钟左右,看起来时间充裕,但实际上选择题会消耗大量时间,因为很多题需要手算。
注意:选择题里统计概率的题往往不是直接套公式,而是给你一个业务场景,让你判断用哪种方法。比如“某功能上线后点击率从3%涨到3.2%,是否显著”,这种题考的是你对假设检验的理解,不是让你背公式。
时间分配上,我的建议是选择题控制在40分钟内,SQL题留40分钟,业务分析题留30分钟,剩下10分钟检查。很多人死在选择题上,后面SQL没时间写,这是最亏的。
1.3 难度定位:不是奥数,是基本功
腾讯数据分析笔试的难度,说实话,不算特别难,但覆盖面广、细节多。它不会考你特别偏的数学定理,但会考你有没有真正理解每个统计概念背后的含义。比如置信区间和置信水平的区别,很多人背了定义但一到业务场景就懵。
SQL部分,难度大概在中等偏上,窗口函数、自连接、日期处理是高频考点。业务分析题则更看你的思维框架,没有标准答案,但逻辑是否清晰、是否考虑到边界情况,一眼就能看出来。
2. 统计与概率:选择题里的隐形杀手
2.1 描述统计与推断统计的分界线
选择题里最容易混淆的就是描述统计和推断统计的适用场景。描述统计是“看现状”,推断统计是“猜全局”。比如给你一组用户活跃数据,让你算均值、中位数、标准差,这是描述统计;让你根据样本推断整体用户的行为,这是推断统计。
腾讯的笔试题经常在这两者之间设陷阱。举个例子:题目给出一组样本数据,问“以下哪个指标最能反映用户收入的集中趋势”。很多人第一反应选均值,但如果数据里有极端值(比如少数高收入用户),中位数才是更稳健的选择。这种题考的就是你对指标特性的理解,不是计算能力。
2.2 假设检验与AB实验的核心逻辑
假设检验是腾讯数据分析笔试的必考内容,因为它直接对应AB实验的评估。核心逻辑就一句话:先假设没有差异,然后看观测到的数据在这个假设下有多大概率出现。如果概率很低(小于显著性水平),就推翻原假设,认为有差异。
但笔试不会只考你这句话,它会给你一个具体场景。比如:“某推荐算法上线后,实验组人均点击次数为5.2,对照组为5.0,标准差分别为1.5和1.4,样本量各为10000,问该算法是否有效。”这种题你需要:
- 确定用双样本t检验还是z检验(大样本用z检验)
- 计算标准误
- 算z统计量
- 查表或估算p值
- 下结论
实操心得:笔试时如果没带计算器,标准误可以近似估算。比如上面这题,标准误≈√(1.5²/10000 + 1.4²/10000)≈0.02,z=(5.2-5.0)/0.02=10,远大于1.96,显著。这种估算能力在笔试里非常关键。
2.3 概率分布与贝叶斯公式的实战考法
概率分布里,二项分布、泊松分布、正态分布是高频考点。腾讯的题喜欢把分布和业务场景结合。比如“某页面每秒钟平均有3个用户访问,问某一秒内有5个用户访问的概率”,这就是泊松分布。再比如“某用户连续点击10次广告,每次点击概率为0.1,问至少点击2次的概率”,这是二项分布。
贝叶斯公式的考法更隐蔽。常见题型是:“某疾病患病率为1%,检测准确率为99%,某人检测阳性,问实际患病的概率。”很多人会直接答99%,但正确答案是远低于99%的,因为要先考虑先验概率。这种题在腾讯笔试里出现过多次,考的就是你有没有贝叶斯思维。
| 考点 | 常见题型 | 易错点 |
|---|---|---|
| 描述统计 | 均值/中位数/众数选择 | 忽略极端值影响 |
| 假设检验 | AB实验显著性判断 | 混淆单双侧检验 |
| 概率分布 | 泊松/二项场景识别 | 参数含义搞反 |
| 贝叶斯 | 条件概率反推 | 忽略先验概率 |
2.4 置信区间与p值的常见误区
置信区间和p值是统计里最容易搞混的两个概念。置信区间是“参数估计的范围”,p值是“观测数据在原假设下出现的概率”。腾讯的笔试题经常把这两个放在一起考,比如“95%置信区间为[2.1, 3.5],以下说法正确的是”,选项里会有“有95%的概率参数落在该区间内”这种经典错误说法。
正确的理解是:置信区间是随机的,参数是固定的。95%置信区间的意思是,如果重复抽样100次,大约有95次构造的区间会包含真实参数。这个理解在笔试里必须清晰,否则很容易选错。
3. SQL编程题:窗口函数是分水岭
3.1 腾讯SQL题的出题风格
腾讯数据分析笔试的SQL题,不会让你写特别复杂的多表关联,但一定会考窗口函数。我统计过近几年的题目,窗口函数出现的概率超过80%。常见的考法包括:计算每个用户的累计消费、排名、同比环比、连续登录天数等。
题目通常会给你2-3张表,比如用户表、订单表、行为日志表,然后让你写一个查询实现某个业务指标。表结构不会太复杂,但字段名可能比较绕,需要你仔细读题。
3.2 窗口函数的核心用法与实战
窗口函数的核心是OVER()子句,里面可以指定PARTITION BY和ORDER BY。腾讯的题最喜欢考ROW_NUMBER()、RANK()、DENSE_RANK()的区别,以及SUM() OVER()做累计计算。
举个例子:给你一张订单表orders(user_id, order_date, amount),让你计算每个用户截至每天的累计消费金额。答案:
SELECT user_id, order_date, amount, SUM(amount) OVER (PARTITION BY user_id ORDER BY order_date) AS cumulative_amount FROM orders;再比如,让你找出每个用户消费金额最高的那一天。答案:
SELECT user_id, order_date, amount FROM ( SELECT user_id, order_date, amount, ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY amount DESC) AS rn FROM orders ) t WHERE rn = 1;注意:
ROW_NUMBER()和RANK()的区别在于,遇到相同值时ROW_NUMBER()会继续递增,而RANK()会跳号。腾讯的题经常在这里设坑,比如“找出消费金额排名第二的用户”,如果用RANK(),可能有多个第二名,用ROW_NUMBER()则只有一个。
3.3 连续登录问题的标准解法
连续登录是SQL题里的经典题型,腾讯也考过。思路是:用ROW_NUMBER()给每个用户的登录日期排序,然后用登录日期减去序号,如果连续登录,差值应该相同。
WITH login_rank AS ( SELECT user_id, login_date, DATE_SUB(login_date, INTERVAL ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY login_date) DAY) AS grp FROM login_log ) SELECT user_id, MIN(login_date) AS start_date, MAX(login_date) AS end_date, COUNT(*) AS consecutive_days FROM login_rank GROUP BY user_id, grp HAVING COUNT(*) >= 3;这个解法在笔试里非常实用,建议直接背下来。考试时如果遇到类似题,改改表名和字段名就能用。
3.4 SQL性能优化的笔试考法
有时候腾讯会考SQL性能优化,比如“以下查询为什么慢,如何优化”。常见的原因包括:没有用索引、用了SELECT *、在WHERE子句里对字段做函数运算、用了OR导致索引失效等。
优化思路一般是:尽量用索引覆盖、避免全表扫描、减少子查询嵌套、用JOIN代替子查询。笔试里如果考到,通常不会让你真的去分析执行计划,而是让你指出问题并给出改写方案。
| 问题 | 原因 | 优化方案 |
|---|---|---|
| 查询慢 | 未用索引 | 在WHERE/JOIN字段建索引 |
| 返回数据多 | SELECT * | 只取需要的列 |
| 索引失效 | WHERE里用函数 | 改写为范围查询 |
| 子查询嵌套深 | 多层嵌套 | 用JOIN或CTE改写 |
4. 业务分析题:没有标准答案但有标准思路
4.1 指标异动分析的万能框架
业务分析题里最常考的就是“某指标突然下降,如何分析”。这种题没有标准答案,但有一套万能框架:先确认数据准确性,再拆解指标维度,然后定位原因,最后给出建议。
具体来说,指标下降先看是不是数据采集出了问题(埋点丢失、统计口径变化),然后按维度拆解:是哪个地区降了?哪个渠道降了?哪个用户群体降了?拆到最细粒度,问题往往就暴露了。最后结合业务动作(比如竞品上线、政策变化、功能改版)给出解释和建议。
实操心得:笔试时答这种题,一定要先写框架再填内容。阅卷人看的是你的逻辑是否清晰,不是你的结论是否正确。框架对了,即使结论有偏差,也能拿大部分分。
4.2 AB实验设计与评估的答题要点
AB实验的题通常分两部分:实验设计和结果评估。实验设计要说明:实验组和对照组怎么分、样本量怎么定、实验周期多长、核心指标和护栏指标是什么。结果评估要说明:用什么检验方法、显著性水平多少、如何判断是否上线。
腾讯的题可能会给你一个具体场景,比如“某社交功能改版,想验证是否提升用户互动率”,让你设计实验。答题时要注意:样本量计算需要基于预期提升幅度和基线指标,不能随便说“取1000个用户”。实验周期要考虑用户行为周期,比如社交产品至少一周,电商至少两周。
4.3 数据驱动决策的案例分析
有时候腾讯会给你一段业务描述,让你分析某个决策是否合理。比如“某游戏上线新皮肤,定价68元,首周销量10万份,运营团队认为定价偏低,建议提价到98元,你是否同意?”这种题考的是你的商业敏感度和数据分析思维。
答题思路:先看68元定价下的收入(68×10万=680万),然后分析提价后的需求弹性。如果提价到98元,销量可能下降,但收入不一定下降。需要估算价格弹性系数,或者参考同类产品的历史数据。最后给出建议时,要说明需要哪些额外数据来支撑决策。
4.4 业务分析题的加分技巧
业务分析题想拿高分,有几个技巧:第一,主动提出需要哪些数据,比如“我需要知道分渠道的转化率数据”;第二,考虑边界情况,比如“如果数据采集有问题,需要先排除”;第三,给出可落地的建议,比如“建议先在小流量做AB实验验证”。
还有一个加分项是量化表达。不要说“用户可能会减少”,要说“预计转化率可能下降5%-10%”。量化表达能让阅卷人觉得你有数据思维。
5. 备考策略与实战经验
5.1 时间分配与刷题优先级
备考腾讯数据分析笔试,时间分配很关键。我的建议是:统计概率占40%,SQL占40%,业务分析占20%。统计概率是选择题的大头,SQL是编程题的核心,业务分析虽然分值高但提升慢,需要长期积累。
刷题优先级:先刷SQL窗口函数和连续登录题,再刷统计概率的选择题,最后看业务分析题的答题框架。网上有很多SQL在线练习平台,建议每天至少写5道题,保持手感。
5.2 笔试当天的注意事项
笔试当天有几个细节要注意:第一,提前测试设备,确保网络稳定、摄像头正常;第二,准备好草稿纸和笔,统计题需要手算;第三,先易后难,遇到卡住的题先跳过,别在一道题上耗太久;第四,SQL题先写框架再填细节,确保逻辑正确。
注意:腾讯的笔试通常是摄像头监考,不要切屏,不要查资料。一旦被判定作弊,直接取消资格。
5.3 常见失误与避坑清单
根据我和身边人的经验,笔试里最常见的失误有:统计题看错单双侧检验、SQL题忘记去重、业务题答得太空泛、时间分配不合理导致后面题没写完。这些坑其实都可以提前避免,关键是多模拟几次。
| 失误类型 | 具体表现 | 避坑方法 |
|---|---|---|
| 统计失误 | 单双侧混淆 | 读题时圈出关键词 |
| SQL失误 | 忘记DISTINCT | 写完检查结果集 |
| 业务失误 | 答案太泛 | 用框架+量化 |
| 时间失误 | 前面耗时多 | 设时间节点提醒 |
5.4 从笔试到面试的衔接准备
笔试过了之后,面试才是真正的硬仗。腾讯数据分析的面试通常会问:SQL现场手写、统计知识深挖、业务案例分析、项目经历追问。所以笔试结束后不要放松,继续刷SQL题,准备几个业务分析案例,把简历上的项目重新梳理一遍。
我个人的体会是,笔试考的是基本功,面试考的是思维深度。笔试过了说明基础没问题,面试想脱颖而出,需要在业务理解和分析框架上多下功夫。平时多看看行业分析报告,多思考“如果是我,我会怎么分析这个问题”,慢慢就有感觉了。
最后再分享一个小技巧:笔试里的业务分析题,答题时可以先写一句“我将从以下三个维度分析”,然后分点作答。这样阅卷人一眼就能看到你的结构,印象分会高很多。这个技巧在面试里同样适用,亲测有效。