
小红书2020校招数据分析笔试题卷三这份卷子我当时拿到手的第一反应是出题人是真把数据分析师当“半个业务负责人”来招的。它不是那种考前刷两本书就能过的卷子四个大模块里有三个都在逼着你用业务逻辑去解释数据而不是单纯考公式、考语法。如果你正在准备校招或者刚转行做数据分析想了解大厂笔试的底层逻辑这套卷子值得你完整复盘一遍。这份卷子面向小红书数据分析师岗位考核重点覆盖了三层能力第一层是懂指标第二层是会取数第三层是能判断。懂指标是看到业务问题能抽象成可衡量的口径会取数是能自己从数据库里干净、准确地抽出这些指标能判断则是拿到结果之后敢下结论、能说清楚风险和边界。整张卷子把这三层能力压缩在90分钟里所以如果你上考场前没有经过刻意训练很容易在“这题我会”和“这道题我写不完”之间出现断层。这篇文章我不会给你贴一份“标准答案”而是把题目设计逻辑、答题框架、以及我当时做题时的思考过程拆开揉碎讲清楚。你把它当成一份地图来看搞清楚它考什么、为什么这么考、下次遇到同类型的题应该从哪个角度下手。1. 试卷整体结构与出题思路拆解1.1 三个能力模块在卷面上是怎么分配的整套卷三的题型分布很清晰我按分值权重和考察目标拆成三块给你看。第一块是业务指标体系题大概占30分左右。它不直接给你数据表而是给你一个业务场景比如“怎么定义一篇高质量笔记”“怎么衡量小红书社区的健康度”让你自己提出指标口径和计算方式。这一块筛掉的是那些只会背概念、不理解业务本质的候选人。第二块是SQL取数与计算题占40分左右是整张卷子的硬核部分。题目会给一张或者多张模拟表要求你写出SQL查询完成留存率计算、连续登录天数统计、漏斗转化率分析这类任务。这一块考察的是数据开发基本功你在实际工作中跑数快不快、准不准基本全看这块的底子。第三块是统计推断与AB测试题占30分左右。重点不是让你手推公式而是给你一个业务实验场景让你判断实验结论是否可靠、样本量够不够、结果能不能推全量。这一块直接对应数据分析师在日常工作中最常做的策略评估工作也是很多候选人容易丢分的地方。从卷三的题目设计能看出来小红书要的是能直接上手的分析师不是招进来再花三个月教业务的在校生。这和2020年前后内容社区进入精细化运营阶段的背景有很大关系——单纯看DAU、GMV的时代已经过去了公司更需要能通过数据帮助业务做决策的人。1.2 为什么小红书会出这些题要理解这套卷子你得先理解小红书这家公司的业务底色。小红书本质上是一个“内容交易”双轮驱动的社区用户进来之后先看笔记、再搜攻略、最后可能跳转到电商下单。数据分析在其中要回答的问题基本都围绕“内容生产—内容分发—内容消费—交易转化”这条链路展开。所以你会看到卷子里出现的业务场景基本都是社区产品的典型问题笔记质量如何评估、创作者活跃怎么定义、推荐策略改版对用户时长的影响、从浏览到下单的转化漏斗在哪里漏人。这些不是从教科书里抄来的题而是数据分析师在每周周报里真的要看的数据。另外2020年这个时间节点也有讲究。当时直播带货刚起来社区电商的转化路径变得越来越复杂小红书内部对“种草—拔草”闭环的分析需求暴增。笔试题目里反复出现“内容互动”“消费转化”相关的考核点就是希望候选人具备把内容行为和交易行为打通分析的意识而不是只会孤立地看某一个单点指标。理解了这个背景你再去做这套卷子很多题目的答案就变得清晰了。比如它问你“高质量笔记怎么定义”你不可能只回答一个播放量你必须把内容价值和商业价值结合在一起来考虑。2. 核心题型解析与答题要点2.1 业务指标题核心是拆解不是背定义业务指标题里最容易犯的错误是张嘴就答“DAU就是日活跃用户数”“留存率就是第二天还来的用户比例”。这种定义式回答在笔试里基本只能拿一半分因为它只证明了你知道概念没有证明你会用。真正的得分点在于拆解。我举一个卷三里非常典型的题目请为小红书的“笔记质量”设计一个综合评估分体系。正确的答题路径是先确定从哪些维度去衡量。一篇笔记的质量不是单一指标能衡量的至少要覆盖两个层面内容消费层面和社交互动层面。内容消费层面可以拆成曝光点击率、完播率、平均阅读时长社交互动层面可以拆成点赞率、收藏率、评论率、转发率。这里面尤其要注意收藏率——对小红书这种攻略型社区来说用户收藏一篇笔记说明它具备“可复用的信息价值”这个参数的权重可以给得比其他互动指标更高。接下来你要说明权重怎么定。你可以用主成分分析或者层次分析法来定权重但在笔试答题时更重要的是表达清楚“为什么”。我当时是这么写的曝光点击率解决“标题和封面吸不吸引人”的问题完播率解决“内容信息密度够不够”的问题收藏率解决“内容是否有长期价值”的问题。这三个指标分别对应内容质量的三个层面所以权重可以按3:3:4分配。最后还要给出综合分的计算方法。比如标准化之后做加权求和或者先按百分位排名再映射到0到100分。这一步是为了让面试官看到你有落地意识——你设计的不是一个漂亮的公式而是一个可以写进报表里日跑的任务。这类题的答题节奏应该是先给指标框架再解释每个指标的业务含义最后给出计算口径和可行的权重方案。记住面试官想看的是你的业务拆解能力和指标落地能力不是想看你会不会背“用户生命周期价值”的定义。2.2 SQL题留存、连续登录、漏斗是三大常客SQL题在卷三里占了最大篇幅其中留存率、连续登录、漏斗分析这三类基本是必考的。你要是认真刷过几套互联网数据分析真题会发现这三类题在几乎所有公司的笔试题里都会反复出现因为它们对应了社区产品和电商产品最常见的分析场景。先看留存计算。卷子里给了一张用户活跃表表结构大概是user_active(uid, active_date)让你计算2020年2月1日新增用户在未来1天、3天、7天的留存人数和留存率。这里有两个考点一是你会不会用自连接或者窗口函数来匹配不同日期的活跃记录二是你知不知道留存率的分母应该用“当日新增用户数”而不是“当日活跃用户数”。很多新人在这一步栽跟头把分母写成DAU出来的数据完全不能用。我当时写的SQL长这样你可以参考一下with new_users as ( select uid, min(active_date) as first_date from user_active group by uid having min(active_date) 2020-02-01 ) select count(distinct n.uid) as new_cnt, count(distinct case when datediff(a.active_date, n.first_date) 1 then n.uid end) as retain_1d, count(distinct case when datediff(a.active_date, n.first_date) 3 then n.uid end) as retain_3d, count(distinct case when datediff(a.active_date, n.first_date) 7 then n.uid end) as retain_7d, concat(round(count(distinct case when datediff(a.active_date, n.first_date) 1 then n.uid end) / count(distinct n.uid) * 100, 2), %) as retain_1d_rate from new_users n left join user_active a on n.uid a.uid group by n.first_date;这段SQL的思路是先找到2月1日当天新增的用户集合然后和活跃表做左连接再用datediff判断每个用户在第几天回来了没有。用count(distinct)是防止一张表里因为重复记录导致计算翻倍这个细节在笔试里很重要因为笔试给出的模拟数据经常故意带重复行。再说连续登录天数。这类题的经典解法是利用“日期减去行号”的连续性特征。如果一个用户的登录日期是连续的那么在按日期排序之后日期减去行号的结果是一个常数一旦中间断了一天这个差值就会变。我们把用户按照这个差值分组组内有多少条记录就代表这个用户连续登录了多少天。with t1 as ( select uid, login_date, row_number() over (partition by uid order by login_date) as rn from user_login group by uid, login_date ), t2 as ( select uid, login_date, date_sub(login_date, rn) as diff from t1 ) select uid, max(continuous_days) as max_continuous_days from ( select uid, diff, count(*) as continuous_days from t2 group by uid, diff ) t3 group by uid;这个解法的核心是窗口函数row_number()。如果你在笔试时用的数据库不支持窗口函数也可以退回到自连接的做法但效率会差一些。我当时在草稿纸上先画了几天数据模拟确认逻辑没问题才开始写因为这种题一旦思路偏了最后出来的结果会非常难看。漏斗转化这类题考的是你能不能把一个多步骤流程完整地算出来。比如给一张用户行为事件表包含曝光笔记、进入详情页、收藏笔记、跳转商品页、下单支付这几个事件让你算每个环节的转化率。标准解法是在事件表里用sum(case when)或者条件聚合把每个环节的独立用户数算出来再做除法。注意“独立用户数”里的去重问题以及如果用户跳过了某一步算后续转化率时的分子分母要怎么对齐。2.3 统计推断题假设检验的思路比计算更重要统计题在卷三里通常不会让你做复杂的积分或者推导它更看重你对统计概念的直觉和判断。比如卷三考了一道AB测试的题目某个推荐策略改版后实验组点击率是10%对照组是8%每组样本量都是5000问这个差异是否显著。看到这种题很多人的第一反应是“10%比8%高了2个点当然显著”。但数据分析师如果只这么想大概率会在后续面试里被追问到崩溃。你必须先把假设检验的完整流程写出来原假设是实验组和对照组没有差异备择假设是有差异然后用z检验或者卡方检验判断p值是否小于0.05。这道题的手算过程我放在第三部分详细拆解这里先讲思路。你要向面试官展现出你知道样本量是不是够大、检验统计量怎么算、p值的含义是什么、以及显著性结论不能直接等于业务效果。最后还要补充一步就是即使统计显著也要看效果大小。2个百分点的提升在日活百万的平台上意味着什么这才是业务方真正关心的。贝叶斯公式也是卷三的高频考点。有一道题大概是这样的笔记审核系统标记“疑似广告”的准确率是95%误判率是5%社区里真实的广告笔记占比是2%。现在有一条笔记被系统标记了问它真的是广告的概率是多少。这道题如果只背公式会很晕但用表格把四种情况列出来答案马上清楚。标记为广告的情况分成两类一类是“真广告被正确标记”概率是2%×95%等于1.9%另一类是“正常笔记被误判”概率是98%×5%等于4.9%。所以被标记笔记里真广告的比例就是1.9%除以(1.9%4.9%)算出来约等于27.9%。这个数字很反直觉但它恰恰说明了一个核心问题在广告笔记占比很低的场景下即使审核系统准确率很高标记结果里依然有大量误报因此审核策略不能完全依赖模型自动判定还需要人工复核。统计题拿分的关键不是你能不能记住每个公式而是你能不能把统计概念翻译成业务语言。你在草稿纸上把公式推导一遍面试官不会太在意但你能不能说出“这个实验结论只适用于当前版本不能直接外推到所有用户”这决定了你是普通笔试者和有分析思维的候选人。2.4 开放案例题结构化表达是得分关键卷三最后一道题往往是开放案例题没有标准答案。比如“小红书计划进行一次推荐算法改版请你设计一套评估方案衡量改版效果是否达到预期。”这道题看起来大其实考察的就是结构化的分析能力你只要能按照“目标—指标—实验—风险”四步走基本就能把这道题答到及格线以上。第一步是明确目标。改版推荐算法业务目标应该落到“提升用户内容消费深度”上比如人均阅读笔记篇数、人均使用时长这类指标而不是笼统地说“优化用户体验”。第二步是拆指标。你不能只盯一个指标要设计一个指标体系。除了消费深度还要关注负向指标比如举报率、负面反馈率、内容生态多样性指数。很多新手只写正向指标忽略了负向指标这在业务实际中是有风险的——推荐算法单纯追求点击率容易导致内容越来越窄化。第三步是设计实验。你要说明实验的分流方式、样本量、实验周期。比如按照用户维度进行分流实验组和对照组各取总流量的10%跑两周观察数据。这里需要用到AB测试样本量计算和显著性检验理论部分正好和卷子的统计题呼应。第四步是明确风险和回滚机制。改版推荐算法会影响所有用户的使用体验所以必须设定熔断阈值。比如实验组的人均使用时长下降超过1%或者举报率提升超过0.5个百分点立即停止实验并回滚。这个部分占分不重但能体现你有工程思维和风险意识。3. 实操过程与题目现场复盘3.1 从拿到SQL题到跑通一个留存的完整推导我在做卷三SQL题的时候习惯先从草稿纸上画一张小表推演一遍再写代码。以留存题为例我先假设有5个用户他们的活跃日期覆盖了2月1日到2月8日然后手动数一遍确认自己知道答案再去写SQL对拍。这样虽然会多花两三分钟但能防止思路跑偏后白写一大段代码。写SQL时要注意几个细节。第一是新增用户的定义这里用min(active_date)然后分组最后用having条件筛出首日活跃在2月1日的用户这个写法比直接where active_date 2020-02-01更严谨因为它可以排除掉老用户在2月1日当天活跃的情况如果你没有用户注册表就得用这种写法从活跃表反推新增。第二是left join的用法。右表只保留与新增用户匹配的活跃记录这样后续datediff才能正确计算。很多人会把inner join写上来结果把没有回访的用户全部过滤掉留存率分母和分子对不上。第三是count(distinct)的细节。活跃表里同一用户同一天可能有多条行为记录如果不加distinct一个用户回访一天会被重复计数留存人数就会虚高。这个坑在实际数据里特别常见因为埋点日志天然会有重复。另外一个容易被忽略的点是写SQL时先看样例数据。笔试环境里通常会给你几行样例数据你要先搞清楚日期字段的格式、是否有null值、表之间的关联字段是什么。现实中很多候选人拿到表就写写一半才发现join条件错了返工时间比思考时间还长。3.2 AB测试样本量计算不要只知道结论要会手算卷三那道AB测试题我在现场是用两步算完的。第一步算合并转化率也就是两组总转化人数除以总人数。实验组5000人转化率10%即500人对照组5000人转化率8%即400人。合并转化率p(500400)/(50005000)0.09。第二步代z检验公式。公式是z (p1 - p2) / sqrt(p * (1 - p) * (1/n1 1/n2))代入数据p10.10p20.08p0.09n1n25000。先算分母部分0.09×0.910.0819再乘以(1/50001/5000)0.0004得到0.00003276开根号约等于0.00572。分子是0.02所以z约等于3.5。3.5大于1.96这个临界值所以p值小于0.05结论是实验组和对照组的点击率差异在统计上显著。你可以顺便算出效果的置信区间但笔试时间有限只要把核心结论和判断逻辑写清楚就够了。这道题我后来在复盘时想了一下它其实有两个延伸考点第一样本量够不够。你可以用功效分析反推一下在两个转化率相差2个百分点、显著性水平0.05、检验功效0.8的条件下每组最少需要多少样本。手算比较麻烦但如果你能在答题里提到“这个样本量满足最低要求”会是一个加分项。第二统计显著不等于业务显著。2个百分点看起来小但如果分母是千万级DAU对应的是几十万次点击这时候业务上就有实际意义了。3.3 开放案例题的语言组织把分析思路“说人话”做案例题的时候我踩过一个大坑就是堆术语。什么“利用协同过滤算法优化推荐策略”“通过机器学习模型提升点击率”写了一大堆但面试官一眼就能看出来你根本没想清楚。后来我总结出一套更实用的回答逻辑每个指标变化都要能讲出一个“发生了什么—为什么发生—下一步怎么办”的故事。比如推荐改版案例里我写的是“实验组的笔记平均阅读时长从65秒提升到72秒初步判断是推荐结果与用户兴趣匹配度提高导致但需要结合人均阅读篇数是否有同步提升来排除‘用户只是被更多标题吸引但内容质量不变’的替代解释”。这样表达的好处是它把数据结果和业务解释绑在一起还考虑了替代假设。面试官看到这种回答会觉得你经历过真实的数据分析工作而不是只会套模型。案例题的时间分配也很重要。我的建议是先用5分钟搭框架写出核心指标和实验设计再用15分钟填充细节。千万不要想到哪写到哪否则很容易在单一指标上写太多最后整体结构失衡。4. 常见失分点与备赛经验4.1 我从卷子里总结出的失分点对照表把卷三复盘完我整理了一个高频失分点对照表你可以拿它和自己平时的答题习惯做一下体检。失分点具体表现正确做法指标定义不落地只写“DAU是日活跃用户数”补充口径说明比如去重规则、统计时区、排除爬虫等方面留存计算分母错误用当日活跃用户做分母明确分母必须是当日新增用户数SQL不去重count(*)直接统计用户维度加distinct防止重复行显著性理解错误认为p0.05就代表效果一定大区分统计显著和业务显著关注效果量案例题只答指标不答风险只写实验设计不写回滚机制补充负向指标监控和熔断阈值时间分配失衡在SQL题上死磕导致案例题空着先通览全卷按分值分配时间其中“统计显著和业务显著混淆”这一点是我见过面试中被追问最多的坑。很多候选人答完假设检验面试官问“差异显著那这个策略可以全量上线了吗”候选人直接说“可以”。但实际上你还要考虑改动成本、用户体验风险、以及效果是否在不同用户群中稳定。如果你能主动提到“虽然显著但提升幅度是否值得承担上线风险还要结合ROI判断”这就体现了数据分析师真正的价值。4.2 备赛方法刷题之外更要练“业务翻译”最后跟你聊聊备赛这件事本身。我接触过不少准备数据分析笔试的人他们最常见的做法是疯狂刷SQL题、刷统计学公式这当然重要但很多人忽略了一个训练方向——把业务问题翻译成数据问题再把数据结论翻译回业务语言。这套翻译能力恰恰是卷三里最难的题目在考察的。你可以这样练每周找一个你常用的App选一个它最近改版或功能更新的点然后自己写一份分析方案。比如小红书把某个页面的信息流从双列改成瀑布流你会用什么指标衡量改版效果对照组怎么设计如果实验数据显示人均点击上升但收藏率下降你会怎么解释这样的练习不用太长每周一次、坚持两个月你拿到案例题的时候思路会明显比硬背框架的人快。SQL题保持手感也很关键。笔试环境通常没有自动补全也不能上网查所以你要习惯在纸上或者纯文本编辑器里写SQL。我建议你把留存、连续登录、窗口函数排名、漏斗转化、开窗函数求累计值这五类题每个类型各刷十遍直到你能在一分钟之内写出核心框架。这类题不靠智商靠次数。笔试的时间管理也是一项硬功夫。卷三题量不小我当时的策略是先用3分钟通读全卷把题目的分值和难度标出来然后在草稿纸上列一个时间表SQL题最多花40分钟业务指标题20分钟统计题15分钟案例题15分钟。这样做的好处是即使最后案例题没有完全展开前面几个重量级题目也不会因为时间不够而丢分。我个人在实际做题和复盘里最深的体会是数据分析笔试考到最后其实考的不是你会多少算法、会写多少SQL而是你在信息不完整、时间有限的情况下能不能抓住业务问题的核心并且用数据给出一个逻辑自洽的答案。卷三的高分候选人往往不是那些知识面最广的人而是那些最能在业务和数据的交叉点上快速找到落脚点的人。这套卷子的价值也不只在面试。等你真的入职做了数据分析师回头再看这些题目会发现它们几乎是日常工作的预演周会上讨论指标口径、临时接一个取数需求、业务方问“这次策略效果行不行”……每一道题都对应着真实的工作场景。把卷子里的思维方法吃透比刷一百道题都管用。最后再分享一个小技巧从现在开始每当你看到一个业务数据报告不管是公司周报还是公开行业报告都试着问自己三个问题——这个指标为什么这么定义这个结论是在什么条件下成立的如果换一个业务场景这个分析方法还适用吗这三个问题练习惯了你以后再拿到小红书2020校招数据分析笔试题卷三这样的卷子就不会觉得它是考试而是一场你每天都在做的业务思考训练。