拓冰建站拓冰建站
首页 / 资讯中心 / 正文

数据分析校招笔试全复盘:从SQL到业务思维的实战拆解

校招季又到了每年这个时候后台都会收到一堆关于数据分析笔试的私信。前阵子翻网盘正好翻到自己当年准备秋招时整理的一套经典真题——小红书2020校招数据分析笔试题卷四。这套题放在今天看依然很适合拿来当练手模板因为它几乎涵盖了数据分析校招笔试的典型模块SQL查询、概率统计、业务思维、建模基础甚至在题量分布和时间压力上都和现在的主流笔试高度一致。这篇文章我会按卷面模块拆开把我当时的解题思路、踩过的坑、以及现在回看总结出的备战方法一并写清楚。不管你是正在投递数据分析岗位的应届生还是准备转行做数据方向想找练手材料这套题的复盘思路都值得参考。需要说明的是以下内容不是对原卷的逐字复现而是基于该套试卷的核心考察方向做的题型复盘与解法提炼。1. 卷面扫描四个模块的题量权重与过线逻辑先聊整张卷子的结构。小红书2020校招数据分析笔试的卷四整体走的是“基础能力业务思维”双线考察路线题型大致分成四块SQL与数据提取题、概率论与数理统计题、业务分析与指标拆解题、机器学习基础概念题。这个结构其实很典型很多互联网公司校招笔试都是这个套路差别只在题目难度和业务背景的贴合度上。1.1 题量分布与建议时间分配从卷面记忆和同类试卷对比来看四个模块在题量和分值配比上大致是这样的模块题量估算分值占比估算建议用时SQL与数据提取3-4题30%40分钟概率与统计3题左右25%30分钟业务分析与指标拆解2-3题30%35分钟机器学习基础概念2题左右15%15分钟我当时是严格按照这个时间预算来控节奏的。为什么因为这种笔试的最大陷阱不是题目难而是前面的SQL题太容易让人陷进去一题写半小时后面业务题直接没时间看。数据分析岗位的校招笔试阅卷往往看的是总分前面再难也只是一两道题的分业务题才是拉开差距的地方。1.2 能力权重背后透露的岗位要求这套模块配比其实在传达一个信息企业对校招数据分析师的预期不是招一个“写SQL的机器”也不是招一个“会背模型的算法工程师”而是招一个能通过数据理解业务的人。所以你会发现SQL题占的比重通常不是最高的业务思维题才是真正决定你能否进入下一面的分水岭。这个判断不是我事后诸葛而是我后来复盘自己的笔试分数得出的结论。第一年裸考类似试卷时我几乎把所有时间砸在SQL上结果概率统计题只写了一半业务题连指标定义都没写清楚直接就挂了。第二年调整策略先把业务题和概率题能拿的分拿稳再回头抠SQL细节效果立竿见影。2. SQL题的本质业务表结构才是解题的第一线索小红书这套卷四里的SQL题说实话单看语法难度并不高不涉及太复杂的递归查询或存储过程主要考察的是日常数据分析最常用的能力多表关联、聚合分组、去重计数、窗口函数。但为什么很多人还是在这里丢分因为题面给的业务表往往不是标准的三范式教学表而是带着冗余字段、空值、重复记录的实战表。2.1 从题目场景反推表结构这类题目一般会给你几张表核心业务通常是用户表user_id、注册时间、城市、内容互动表笔记id、用户id、互动类型、互动时间、订单表订单id、用户id、下单时间、金额。有一个高频考点是“留存率计算”。典型的提问方式是这样的给定用户注册表和互动记录表请计算2020年1月每个自然周的新用户注册后7日留存率。这类题目考察的不只是JOIN语法而是你有没有意识到“7日留存”的定义——用户注册后第7天或注册后0-7天内发生了任意互动行为。我当时常用的解法是这样的WITH reg AS ( SELECT user_id, DATE(reg_time) AS reg_date, YEARWEEK(reg_time, 1) AS reg_week FROM users WHERE reg_time 2020-01-01 AND reg_time 2020-02-01 ), inter AS ( SELECT DISTINCT user_id, DATE(interact_time) AS act_date FROM interactions WHERE interact_time 2020-01-01 AND interact_time 2020-02-15 ) SELECT reg.reg_week, COUNT(DISTINCT reg.user_id) AS new_users, COUNT(DISTINCT IF(DATEDIFF(inter.act_date, reg.reg_date) 7, reg.user_id, NULL)) AS d7_retained_users, COUNT(DISTINCT IF(DATEDIFF(inter.act_date, reg.reg_date) 7, reg.user_id, NULL)) / COUNT(DISTINCT reg.user_id) AS d7_retention_rate FROM reg LEFT JOIN inter ON reg.user_id inter.user_id GROUP BY reg.reg_week;这里有几个细节值得说明。第一为什么要用YEARWEEK而不是简单用WEEK因为跨年的周需要用年份来区分YEARWEEK(reg_time, 1)表示以周一作为一周起点这和国内互联网公司常用的自然周口径一致。第二为什么要先对互动表做DISTINCT因为同一个用户同一天可能有多条互动记录如果不先去重用户会被重复计数。第三LEFT JOIN保证没有任何互动的用户也能被计入新用户基数这个外层保留逻辑很关键很多人写成了INNER JOIN留存率算出来虚高一看就是错的。2.2 窗口函数考察连续行为判断另一类高频SQL题是“连续N天活跃用户”或“用户连续消费天数”。这个题目现在互联网笔试里几乎人手一道卷四里也有类似的变体。核心解法是行号与日期差值的技巧WITH user_act AS ( SELECT user_id, DATE(act_time) AS act_date FROM interactions GROUP BY user_id, DATE(act_time) ), ranked AS ( SELECT user_id, act_date, ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY act_date) AS rn FROM user_act ) SELECT user_id, COUNT(*) AS continuous_days FROM ranked GROUP BY user_id, DATE_SUB(act_date, INTERVAL rn DAY) HAVING COUNT(*) 7;这个解法的原理可以这样理解把每个用户的活跃日期按时间排序后编号如果一个用户连续活跃那么“活跃日期减去编号”这个值是不变的一旦中间断了这个差值就会跳变。所以按这个差值分组就能把连续活跃的段位切出来。我第一次接触这个技巧时觉得特别巧妙它把“连续性”转化为“分组”问题跳出了逐行判断的思维定式。提示面试官看重的不只是这个答案而是你是否解释清楚了“为什么日期减行号能识别连续区间”。建议在评论区或面试口述时主动说清这一步推导会加分不少。这类窗口函数的题卷四里常见的还有“对每个用户的互动次数按时间排序取最近3条”“求每个品类的订单金额排名前5的用户”等。核心考点就是RANK、DENSE_RANK、ROW_NUMBER三者的区别以及PARTITION BY和ORDER BY的组合使用。2.3 窗口函数容易踩的坑如果要求“每个用户最近3条”但用户的总记录数不足3条是否保留该用户这个边界条件需要根据题意判断有些题目默认保留有些则要求剔除。如果互动次数相同是按什么顺序排的RANK会跳过并列名次DENSE_RANK不会选择哪个取决于业务语义是“排行”还是“序号”。窗口函数不能直接写在WHERE子句里需要嵌套子查询或CTE很多人第一次写会在这里报错。这些坑光靠刷题不够建议多动手在不同数据量下跑一跑才能真正理解窗口函数的执行顺序。3. 概率统计题不考复杂推导考快速建模与边界判断概率统计模块在卷四里有大概三题难度定位在“能看懂题、能列式、能算对”这个级别不会出现需要复杂积分的高阶推导。但考察范围比较全覆盖了古典概型、条件概率、随机变量期望与方差、常见分布、假设检验基础概念等。3.1 一道典型题型的解法贝叶斯公式我记得这套卷子里有一道题大意是说某内容平台有普通用户和创作者两类用户创作者发布高质量笔记的概率明显高于普通用户现在已知某一篇笔记是高质量笔记问该笔记来自创作者的概率。这是一个非常经典的贝叶斯应用场景。这种题型的解题关键是先把事件定义写清楚A事件笔记来自创作者B事件笔记是高质量笔记已知P(A)、P(A的补集)、P(B|A)、P(B|A的补集)然后套公式P(A|B) P(B|A) * P(A) / P(B)其中P(B) P(B|A) * P(A) P(B|不是A) * P(不是A)。我当时犯过一个很蠢的错误就是忘了分母需要展开成全概率公式直接拿P(B|A)当分母用结果概率算出来大于1一眼被面试官看穿。这种错误在真实笔试里特别容易发生因为时间紧张人一急就会跳步。我的建议是每一步都把“已知什么、要求什么、分母怎么来的”写清楚哪怕只是简略写在草稿纸上也能避免低级失误。3.2 期望计算的业务化包装还有一类题会包装成业务场景某App每日新增用户数服从泊松分布平均每天新增100人问一周内新增用户数超过750人的概率或者给出某功能上线的AB测试数据问转化率差值的置信区间是否包含0。前者考常见分布的性质后者考假设检验和置信区间的基本理解。关于泊松分布要记住一个核心性质可加性。如果每天的新增人数独立且均服从泊松分布那么一周的总新增人数也服从泊松分布均值就是700100乘以7天。然后可以用正态近似来估算P(X750)因为均值已经到700量级泊松分布已经非常接近正态分布。这类题不会要求你手算精确值但会考察你是否能给出正确的近似计算思路和标准化的Z值公式。我当时备考时背熟了几个常用分布的均值和方差公式以及正态分布的几个关键分位点比如Z1.96对应95%置信区间Z2.58对应99%置信区间。这些数值在校招笔试里出现频率极高一定要形成肌肉记忆。3.3 统计概念的选项陷阱概率统计的选择判断题里常有一些对概念的模糊表述。例如“p值越小说明原假设成立的概率越小”。这句话是错的因为p值不是原假设成立的概率它是在原假设为真的前提下观测到当前或更极端数据结果的概率。区分“条件概率”和“假设概率”是一个核心考点。另一个我被坑过的表述是“置信区间越窄说明样本量越大”这句话只有在置信水平和其他条件不变的前提下才成立单独拿出来说就不严谨。我的经验是遇到这类文字判断题第一反应不是去计算而是去抠每个量词——“条件是什么”“结论是什么”“是否遗漏了前提”。数据分析师日常沟通里最难的就是把结论讲严谨笔试里这些选择题实际上就是在模拟这种沟通场景。4. 业务思考题从指标异常到归因分析的答题框架业务分析题是卷四里区分度最大的一块也是最难临时抱佛脚的。因为这类题没有标准答案考的是思维框架和信息组织能力。但“没有标准答案”不等于可以乱答相反最容易拿高分的答案往往有一个清晰的框架。4.1 指标异常类题目的三步定位法卷四里有一道典型的业务题某平台某天笔记的日均点赞量突然下降了15%请分析可能原因并给出数据验证思路。这类题在几乎所有互联网公司笔试里都会出现答题框架完全可以复用。第一步确认数据口径。是先看是不是统计数据延时、埋点缺失、口径调整导致的数据“假下跌”。比如那天有没有上线新版本导致日志上报失败或者时间口径从自然日改成了某个固定时区。这一步最容易被忽略但往往是业务线上真正发生过的情况。第二步维度拆解。把整体指标按维度拆开看下跌是全局性的还是结构性的。拆解的维度通常包括设备端iOS/Android、用户分层新老用户、内容品类美食、旅行、时尚、作者类型头部创作者/中腰部/普通用户、地域城市等级、流量来源推荐页、关注页、搜索。判断是否是某特定维度出现问题然后锁定部分将问题范围缩小。第三步原因分析。针对具体维度和具体场景再结合外部环境与内部动作提出待验证的假设。内部动作比较典型的有推荐策略调整、首页改版、互动功能改动、创作者激励策略调整、特殊活动下线、社区内容治理收紧等。外部环境就比较多样了可能是节假日效应、竞品活动分流、突发事件影响用户讨论热度。答题时我的结构通常是这样先说数据口径和真实性排查然后讲维度拆解思路接下来列出候选原因假设最后给出每一个假设对应的数据验证方法。这套框架其实特别像写一篇简短的“数据分析报告大纲”。我能形成这个习惯是因为实习时带我的同事教我一句话分析师的输出不是“数据”而是“决策建议”。你写出来的每一段分析都要能回答“所以呢我们要做什么”这个问题。哪怕笔试是停留在纸面上的回答带上了这个意识也会明显更接地气。4.2 指标体系搭建与漏斗分析另一类高频业务题是“请你为某个功能设计一套指标体系”或“某电商平台下单转化率低请分析原因”。这类题目考察的是你对业务的理解程度和数据建模能力。以“下单转化率低”为例正向的漏斗拆解比较简单曝光到点击、点击到商品详情页、详情页到加购、加购到下单、下单到支付。每一步都可以计算转化率对比历史数据和同期数据找短板。但我发现很多人的答案在这里就结束了这是不够的。好的答案应该继续往下拆纵向同一个环节按用户分层拆。新用户和回流用户注册未登录用户和登录用户每一步的下沉深度完全不同。横向同一个环节按商品和渠道拆。引流渠道的流量质量是否发生变化商品类目是否偏向了低转化类目。反向用户流失后去了哪里。是退出App还是去竞品平台比价这个信息可以通过搜索行为、浏览竞品的关键词、以及用户反馈来辅助验证。指标体系搭建的题目也一样核心是不要堆砌指标。应该从“这个功能要解决什么问题”出发再定义“什么指标能代表问题被解决”然后才是“这些指标怎么统计”。我当时总结了一个简单的口诀先有目标再有一级指标再有过程指标最后才是维度拆分。这个口径用在笔试题里基本上不会跑偏。5. 机器学习基础概念题不是考模型而是考边界意识卷四里机器学习相关的题目比重不大通常只有两三道选择题或简答题考察的深度也远低于算法岗。但别小看这几道题它是很多科班生和非科班生的分水岭。非科班同学如果这块完全空白笔试总分很容易被拉下来一截。5.1 高频概念清单从同类试卷和卷四的覆盖范围来看最容易出现的是这些概念过拟合与欠拟合的区分以及对应的处理手段交叉验证的目的是什么注意不是提高准确率而是更稳定地评估模型精确率和召回率的定义及其在正负样本不平衡场景下的意义特征选择与特征提取的区别选择是保留子集提取是变换组合L1和L2正则化的区别L1产生稀疏解L2控制权重幅度。这些知识点不需要你推导公式但你必须能用业务语言解释清楚。比如精确率和召回率的区别我会用“搜的内容准不准”和“想找的内容有没有被找到”来帮助记忆放到推荐场景精确率就是推给用户的内容与用户偏好的相关性召回率就是用户感兴趣的内容被推荐出来的比例。5.2 答题时的边界意识我印象里有一道类似这样的简答题在正负样本严重不平衡的情况下用准确率Accuracy评估模型是否合适如果不合适应该用什么指标这类题的关键不是回答“不合适”而是分析“为什么不合适”。当负样本占99%一个什么都不做的“傻瓜模型”把所有样本都判为负样本准确率也能到99%。这个结论听着很反直觉但只要想明白准确率的计算公式就会知道准确率在样本不均衡时会严重失真。正确的答案应该围绕精确率、召回率、F1值、AUC等指标展开。其中AUC因为不受分类阈值影响常被用于模型整体排序能力的评估而精确率与召回率则适合在具体业务场景下做权衡——例如在垃圾内容识别场景宁可误伤普通内容也不能放掉一条违规内容所以会偏重召回率反过来在商品推荐场景推错了会让用户体验变差所以更偏重精确率。我备考时并不会去啃机器学习教材的推导部分而是把每个概念和“业务意义”绑在一起记。笔试不是搞学术研究它要的是你能在业务语境里做出正确判断。6. 复盘备考时间分配、错题管理与应试心态最后一章我想聊聊怎么刷这套题、怎么备考这部分其实比题目本身更值得分享因为大多数人的问题不是“不会做”而是“来不及做”或“做了但写不到得分点上”。6.1 我的答题时间规划第一次做这套卷四风格的试卷时我给自己掐了表。当时的结果是SQL花了55分钟概率统计花了25分钟业务题只写了10分钟建模题完全空白。总分出来后就明白问题了不是SQL写得对不对是策略上就错了。第二次我调整了顺序和时间先花5分钟快速浏览全部题目把每道题的分值和难度标出来然后先做概率统计和机器学习这些“会就是会、不会就是不会”的题接着做业务分析题把答题框架先列出来再逐步填充细节最后剩余时间给SQL题。SQL题往往步骤多、容易卡把它放到最后做哪怕某一道完全卡住也不至于让整套卷崩盘。这套答题顺序后来我用在十几场笔试里基本都能保证“会做的题拿全分不会的题不留白”。留白是笔试最大的忌讳。6.2 错题管理笔记的整理思路刷题不能只做不复盘。我当时做了一本错题笔记但形式不是简单抄题抄答案而是按“错因”分类记录概念理解型错误说明概念没理解透回去翻资料重新用自己的话解释一遍计算粗心型错误记录“是在哪一步开始偏的”下次做题时特别留意这一步时间管理型错误标注“这道题考场上花了几分钟”反思是否可以在更短时间内完成框架缺失型错误业务题没答好往往不是知识点问题而是思维框架不完整比如只知道漏斗分析不知道还要做维度拆解和原因假设。每次笔试前翻一遍错题本比临时看面经有效得多。因为看面经是接收别人的信息而错题本是你自己的思维漏洞地图。6.3 笔试过程中的瞬时决策最后聊一个容易被忽视的点笔试过程中的情绪管理。我做题时遇到过被一道SQL卡了20分钟的情况当时整个人都快慌了。后来的方法是给自己设一条“止损线”——一道题如果超过预定的时间上限马上停下在答题框里写出你的解题思路第一步留个一两行然后果断跳下一题。这样即使没做出来至少向阅卷人展示了你的思考方向更重要的是它把你从“卡死”的心态中拽出来保住后续题目的做题状态。这个习惯我后来带到工作中也很受益。数据分析师日常里经常要面对“上一轮的取数逻辑刚写到一半临时又来紧急需求”的情况没有止损和切换能力很容易在细节里越陷越深把整体进度拖垮。按照个人体会来说刷真题的意义不在于押中题目而是通过高频考点搭建自己的知识框架和答题节奏。小红书2020校招数据分析笔试题卷四的整体难度在校招笔试里属于中位水平非常适合用来做自我摸底。如果这套卷你能在90分钟内保质保量做完那大多数互联网公司数据分析岗位的笔试关都是可以稳过的。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门