小红书数据分析笔试题复盘:SQL、统计与业务分析全解析
2026/8/31 14:17:42 网站建设 项目流程

最近后台一直有人问校招笔试的事,尤其数据分析岗,很多人拿着小红书2020校招数据分析笔试题卷三来找我对答案。这套题虽然那年考过,但里面的考点到现在依然是主流,甚至可以说,它把“数据人到底该会什么”这件事讲得很清楚。今天我就按这套卷子的实际结构,把考察重点、解题思路、失分点一条条拆开讲,顺便聊聊这类笔试题背后的出题逻辑,给正在准备校招、跳槽,或者自学数据分析想检验水平的朋友一份可以直接参考的复盘笔记。

小红书是内容社区产品,它的数据分析师每天面对的问题,核心就是三件事:内容怎么分发、用户怎么增长、社区怎么变现。围绕这三个业务方向,数据岗位的笔试题非常务实,不考偏题怪题,但考得很细。卷三里几乎没有纯背诵类题目,全是给你一张表、一个指标、一个业务问题,让你用数据和逻辑去回答。这种风格代表了互联网公司数据分析笔试的主流方向:SQL是基本功,统计学是底层逻辑,业务分析是最终落点。

1. 试卷整体结构与考点分布

拿到一套笔试题,我建议大家先别急着做题,先花五分钟扫一遍整体结构,看看每个题在考什么能力。这比埋头刷题重要得多,因为看懂出题结构,你才能判断自己哪块是短板。

1.1 题型构成与考察能力对照

根据对这套卷子的综合复盘,卷三的题型大致可以分为四类:SQL题目、统计学基础题、业务分析题、开放型产品分析题。整体时长通常在90到120分钟,题量不大,但每道题都需要写清楚过程,时间其实是偏紧的。

第一类是SQL题,一般占比在30%左右,核心考察取数能力。社区产品常用的表无非就是用户表、内容表、互动表、关注关系表,题目通常会让你统计日活、留存、内容发布量、互动率这类指标。注意,这里考的绝不是简单select,而是多表关联、去重计数、窗口函数、时间维度对比这些实战中天天用的操作。

第二类是统计学基础题,核心考察概率论和假设检验。比如AB测试怎么做、显著性怎么看、置信区间怎么理解,还有常见的贝叶斯公式题目。这类题看起来偏理论,但对做数据的人来说,这是最基本的判断依据。

第三类是业务分析题,这类题是整张卷子最核心的部分。通常会给你一个业务现象,比如“小红书的收藏量上升但点赞量下降”,让你分析可能的原因、给出验证方法、提出解决方案。这种题没有标准答案,考的是分析框架和业务敏感度。

第四类是开放型产品分析题,比如估算类问题,或者让你设计一个指标体系。这部分重点看思路,不要求你答得完美,但要求你答得有逻辑层次。

1.2 和小红书业务场景的对应关系

这张卷子最大的特点,是大量题目都围绕内容社区的核心场景展开。你不需要知道小红书的任何内部数据,但你必须理解内容产品的运行逻辑。

举几个典型的业务场景:内容发布与审核链路、推荐系统的曝光与点击、用户关注与取关、搜索关键词与结果页点击、电商笔记的商品转化。这些场景在数据分析日常工作中会反复出现,所以笔试题实际上是在模拟未来的工作场景。

比如有一类高频题是“一个指标下降了,你怎么排查”,这类题在小红书场景下就非常典型。社区产品指标众多,浏览量、人均时长、互动率、留存率相互影响,指标波动的原因可能来自推荐策略调整、内容供给变化、用户结构变化、节假日效应、甚至客户端bug。这种题目拿到卷面上,你光知道“我要分析原因”是不够的,必须给出具体的拆解路径。

很多非社区产品背景的考生做此类题会觉得无从下手,本质原因是缺少对内容产品运行机制的直观理解。我的建议是,准备这类题之前先去把小红书、抖音、B站这类产品的核心链路完整梳理一遍,从用户打开App到发布内容、浏览内容、产生互动,每一步会产生哪些数据,哪些指标可以衡量这个环节的健康度,把这套逻辑想清楚再做业务题,会顺手很多。

2. 高频题型拆解与答题框架

一套题做得顺不顺,取决于你对高频题型是否有稳定的答题套路。这里说的套路不是死记硬背,而是遇到这类题时知道从哪些维度下手。下面我把卷三里出现频率最高的几类题逐一拆解。

2.1 SQL题:不要只会写,还要写出效率

SQL题在数据分析笔试中几乎是必考项,卷三也不例外。但需要注意,由于笔试环境通常只给你表结构和题目描述,没有真正的执行环境去验证,所以你写的每一句代码都要逻辑严密,不能靠“大概是对的”来蒙混。

常见的SQL考察点包括:多表join时如何处理重复数据;统计去重活跃用户数时是count(distinct user_id)还是先group by再count;用窗口函数计算每个用户的连续登录天数或内容发布间隔;用date_diff或timestampdiff做日期计算;case when做多条件分组统计。

有一个容易被忽略的考点是:null值的处理。很多人在写left join之后不关注右表的空值情况,导致统计出的结果偏差很大。笔试题里如果出现“统计用户发布内容数量”这种看似简单的题,一定要想到:有的用户没有任何发布记录,left join之后发布数会是null,需要用ifnull或coalesce函数转成0,否则平均数会被算错。

另外,窗口函数的写法在笔试题里特别容易暴露水平。比如“计算每个用户最近一次发布内容距今天数”,你先要用row_number() over(partition by user_id order by publish_time desc)给每条内容排序,然后取rn=1。这种题刷多了就能形成条件反射,但如果你只会group by,这类题就很难做出来。

2.2 统计学题:从公式记忆到推导能力的转变

统计学部分的题量和难度在不同年份有差异,但卷三明显更注重对统计思维的考查,而不是单纯套公式。

AB测试的题目是重点。比如给你一组实验数据,实验组转化率3.2%,对照组转化率2.8%,问你结论是否显著。这时候你不仅要会算p值,还要能解释:为什么不能直接看数值就下结论?样本量多大、方差波动如何、置信区间是多少、是否存在多重比较问题?这些都是面试官想看到的分析深度。

还有一类概率题,比如用贝叶斯公式计算用户是高质量内容作者的概率。一开始看到这种题我也有点懵,但后来想明白了,社区产品做内容质量识别时,本质上就是在做分类任务:根据用户行为特征,计算其属于优质创作者的条件概率。理解这个应用背景,再去看公式,就没有那么抽象了。

统计学这块的复习,我建议大家把重心放在假设检验的流程上:先明确原假设和备择假设,再计算检验统计量,得到p值,结合业务阈值下结论。这套流程看似简单,但很多人到面试现场一紧张就忘了说原假设,直接报结果,这在笔试和面试中都会严重扣分。

2.3 业务分析题:拿分关键是结构不是答案

如果说SQL和统计靠硬功夫,业务分析题则靠结构化思维。小红书这类公司的业务分析题,往往没有唯一答案,阅卷人看的是你的逻辑线是否完整。

比如一道典型的业务分析题:“某天小红书笔记的收藏量显著增长,但点赞量没有变化,请分析原因并验证你的假设。”这类题你如果上来就说“可能是因为收藏按钮改版了”,就废了。正确的打开方式是从内部因素和外部因素两个维度做拆解。

内部因素包括功能改版、推荐策略变化、内容供给结构变化、文案引导变化等。外部因素包括竞品动态、热点事件、节假日、舆论环境等。每个因素下面,你还要说清楚用什么数据来验证。比如说“如果是推荐策略导致更多长尾内容曝光,那么收藏率上涨的同时,笔记曝光结构应该发生变化,可以通过内容分层的曝光数据来验证”。

在答题结构上,我习惯用MECE原则把原因分尽,然后对每种原因给出数据验证方案。这样写出来的答案,即使结论不是面试官心里的那个,也能拿到大部分分数。

2.4 开放题:估算与指标设计的思路展示

开放题在笔试中占比不大,但属于区分度很高的题目。卷三里的开放题主要集中在两类:一类是费米估算题,比如估算小红书上一天的笔记发布量;另一类是设计类题目,比如给内容社区设计一套创作者健康度指标体系。

做估算题,关键不是答案的精确度,而是逻辑链条的合理性。初看这类题感觉没法下手,但你先从人口总数出发,拆出小红书目标用户规模,再乘渗透率,再乘发布频率,逐步细化,每一步的假设都说明理由。即便最终数字和真实情况有偏差,但你的推演过程是完整的,这就能拿到分。

设计指标体系这种题,重点在于展现你对业务的理解。创作者健康度不能只写“活跃度”一个指标,你要围绕发布、互动、涨粉、变现几个环节分别设计。发布环节看发布频次和内容质量分,互动环节看赞藏评转数据,涨粉环节看粉丝增长率和粉丝粘性,变现环节看笔记带货转化率和商单接洽率。最后还要提一下北极星指标是什么,以及各指标之间的优先级怎么排。这样回答,就给面试官一个完整的业务视角。

3. 几类典型真题的解题复盘

这一节我们直接走进题目本身,用具体例子还原做题时的思考过程。虽然2020年的原题原文我手里已经找不全了,但根据当年考生的集中反馈和网上流传的讨论帖,核心题型的风格是稳定的,我按同类型真题来复盘,思路是一样的。

3.1 SQL真题:统计社区活跃作者的留存情况

有一道SQL题大概是这样的:有用户信息表user_info和内容发布表content_info,求每个用户首月发布内容后的次月留存情况。

这道题综合性很强,既考去重,又考时间计算,还考留存定义。我的推导步骤是:先找出每个用户第一次发布内容的月份,作为其“首月”;再统计该用户次月是否发布内容,如果发布了记1,否则记0;最后按首月分组计算整体留存率。

with first_month as ( select user_id, date_format(min(publish_date), '%Y-%m') as first_month from content_info group by user_id ), next_month_act as ( select distinct user_id, date_format(publish_date, '%Y-%m') as act_month from content_info where date_format(publish_date, '%Y-%m') = date_format(date_add(min(publish_date), interval 1 month), '%Y-%m') ) select first_month.first_month, count(distinct first_month.user_id) as new_author_cnt, count(distinct next_month_act.user_id) as retained_author_cnt, count(distinct next_month_act.user_id) / count(distinct first_month.user_id) as retention_rate from first_month left join next_month_act on first_month.user_id = next_month_act.user_id group by first_month.first_month;

这里有一个很关键的细节:next_month_act子查询中的min(publish_date)是每个用户的全局首次发布时间,不能直接在where中使用聚合函数,我的写法只是帮你理解逻辑,在真正可执行的SQL里你需要用子查询先求出全局首次发布月份再关联。这个细节如果笔试时没注意,很容易写出语法错误。另外,date_add在跨年时是安全的,所以你可以放心用它计算“次月”。

这道题的失分点主要在两个地方:一是没有对user_id去重,导致用户多个月发布记录被重复计数;二是在where子句中直接使用聚合函数。大家平时写代码如果有条件,一定要多跑一跑,语法错误是最亏的丢分。

3.2 业务分析真题:内容feed流人均时长下降

这道题是典型的“指标异动分析”。题目给了背景:最近一周App的人均使用时长持续下降,尤其feed流模块下降明显,让你定位原因并提出建议。

这种题我非常推荐用“三层拆解法”来组织答案。第一层拆用户:是哪些用户群的使用时长下降了?是新用户还是老用户?是安卓端还是iOS端?是不同城市等级之间有差异吗?用维度下钻的方式找到下降群体。第二层拆场景:是打开App的次数变少了,还是每次使用时长变短了?如果是每次用完就退出,那大概率是内容匹配问题;如果是打开频次掉了,可能是推送、入口或者外部竞争。第三层拆供给:最近内容供给是否有变化?比如优质内容发布量下降、审核策略调整导致内容池变窄、推荐算法更新导致兴趣匹配度下降。

这三层并非孤立分析,而是层层递进:先确定下降发生在谁身上,再判断发生在哪个使用环节,最后追溯供给和策略的变化。在笔试题里,拿出这样的框架,再配上对应的数据表和监控报表,已经算是高分回答了。

3.3 指标设计真题:为搜索功能设计指标体系

搜索功能是小红书这类社区产品的核心流量入口之一,卷三也有围绕搜索的分析题。题目会让你设计一套搜索功能的数据指标体系。

初级答案会写搜索次数、搜索用户数、搜索结果点击量,但这是远远不够的。完整的搜索指标体系,至少要覆盖搜索前、搜索中、搜索后三个环节。

搜索前,重点是需求侧指标,比如搜索渗透率(搜索用户/活跃用户)、人均搜索次数。搜索中,重点是效率指标,比如搜索无结果率、搜索点击率、首屏点击率、搜索后跳出率。搜索后,重点看转化和满意度,比如搜索结果页到笔记详情页的转化率,以及搜索后的长期行为,如关注、收藏、关注作者等深度行为。再加上搜索词分类的分析,想看用户到底在找什么,也可以做搜索词意图分布。

这套指标体系的背后逻辑是:搜索功能的价值不只是让用户搜到内容,更在于让用户更高效地找到好内容,并引导用户产生深度互动。答题时如果你能多写一句“我还会关注搜索无结果率,因为无结果率太高说明内容供给覆盖不足,直接影响用户对搜索的信任度”,这道题就明显有差异化优势了。

4. 卷三常见失分点与避坑指南

我自己也做过不少模拟题,再结合大家反馈的丢分情况,发现几个问题特别普遍。这里专门列出来,你复习的时候应该主动避开。

4.1 一上来就写代码,不审视数据口径

很多人在SQL题上失分,不是不会写,而是数据口径没搞清。比如“活跃用户”定义是“当日有登录行为”还是“当日有浏览行为”?“发布内容数”是“审核通过的”还是“所有提交的”?题目没写清楚,你就应该说明自己默认的口径,甚至作答时标明“我在此假设是xx口径”。

这不仅是笔试技巧,也是实际工作中数据人的职业素养。真实的业务分析中,口径不统一是最大的坑,同一份数据,两个部门能算出两种结果。所以答题时主动说明数据口径,会显得你经验丰富。

4.2 业务题只讲原因不给验证方法

这类失分最可惜。很多同学在分析类题目上能列举很多原因,比如“推荐策略变了”“内容质量下降了”“竞争对手抢流量了”,但就是不写怎么验证这些原因。阅卷人看到这样的答案,只能认为你只有猜测能力,没有分析能力。

要扭转这个局面,建议形成“假设—验证”闭环。每提出一个原因,后面跟一句“可以用哪个数据、哪张表、哪个实验来验证”。比如你怀疑是推荐策略导致的,那就写:拉取策略上线前后同口径的指标对比,或进行小流量ab实验。这样一来,答案的完整度立刻上了一个档次。

4.3 统计题只算数值不解释业务含义

统计学题里,p值小于0.05并不等于业务上一定值得上线,这是因为“统计显著”和“业务显著”是两回事。如果实验组转化率只比对照组高0.1个点,p值再小,可能也覆盖不了开发成本。所以答题时要综合评估效果大小、成本、长期影响,而不是只盯显著性。

我见过很多人在笔试里把AB测试结果算完就结束了,完全不提置信区间、最小样本量、功效分析,也完全不说这个结果意味着什么业务决策。这样丢分是很亏的。你只要多写一句“虽然p值显著,但提升幅度仅为0.1个百分点,考虑到开发成本,建议延长实验时间或优化方案后再做决策”,就能把这道题的分数拿稳。

4.4 时间分配失衡,在小题上死磕

笔试时间有限,这是老生常谈但每次都有很多人栽跟头。卷三的题量虽然不大,但每道题都需要你写步骤、写说明,20分的业务题往往需要比10分的SQL题花更多时间。我建议按分值配比时间,拿到卷子先花2分钟把所有题目扫一遍,标记每道题的预估时间,遇到卡壳超过5分钟的题先跳过,把能拿的分全部拿到手再回头啃难点。

现实中的笔试场景很容易让人焦虑,尤其是看到前面题目有不确定的地方,就忍不住反复修改。我的习惯是,哪怕答案不够完美也要先写完整,因为阅卷是按点给分的,你把框架搭起来,每一步逻辑写清楚,分数就不会太差。

5. 从这套题反推校招数据分析复习重点

这套小红书2020校招数据分析笔试题卷三能反映出的东西,远比题目本身多。它最大的价值是帮你对标大厂数据分析岗的能力要求,让你知道往哪个方向使劲。

5.1 SQL、统计、业务三块能力缺一不可

如果你正在准备数据分析校招,对照这套卷子就能看到自己短板的来源。SQL不行,你连取数都费劲;统计不行,你做AB测试分析和实验结果判断会没有底气;业务不行,你分析出的结论只会停留在表面。

三块能力的关系,我用一个理科生的类比来解释:SQL是手,帮你拿到数据;统计是眼睛,帮你看懂数据的随机性和误差;业务是大脑,帮你判断数据背后的原因和行动方案。三者配合,才能真正发挥数据分析师的价值。只专精其中一块,大概率只能做一个“偏科”的数据人,而大厂业务侧的数据分析岗,要的是能独立搞定分析闭环的人。

5.2 结合热门的分析工具做实战练习

校招面试官不会只问你会不会SQL和Excel,他们会关注你是否了解并会使用更高效的工具。近几年热度很高的数据分析清洗工具,比如dify这类能快速搭建数据清洗流程的开源工具,在简历和面试中已经越来越常见。

我在自己的项目里也尝试过用dify做数据分析前的清洗环节,效果很直观:原来要写一堆python脚本处理的缺失值、异常值、格式统一问题,在dify里可以通过可视化流程编排快速完成。对校招同学来说,如果你有类似基于python数据分析与可视化的项目经验,或者用过dbeaver这类工具做过图表可视化,都可以在面试中拿出来讲,这比单纯说“我会pandas”更有说服力。

从商业数据分析的角度看,面试官更关心的是:给你一堆乱数据,你能不能把它清洗成可用数据;给你一个业务问题,你能不能把数据变成洞察和结论。这个能力比工具本身更值钱。

5.3 多做贴近业务场景的数据分析案例

很多同学刷题只刷leetcode型SQL,不刷业务场景题,这是本末倒置。笔试中真正拉开差距的,恰恰是业务分析部分。我建议大家花时间去了解几个主流内容产品的核心业务模式,做几个完整的数据分析案例,把数据清洗、指标搭建、异动分析、ab测试、归因分析这五个环节完整走一遍。

比如你可以自己选一个公开数据集,模拟一个业务问题:“某社区应用近30天用户留存下降5%,分析原因并给出建议”。然后从数据清洗开始,一步步做到可视化、归因分析、结论输出。这个过程做下来,你对数据分析面试题的理解会从“背答案”变成“真的会做”。

我还建议大家准备一些数据分析项目,最好能体现你对业务闭环的理解,比如你做了一个内容推荐相关的分析,就要说清楚分析结果如何影响推荐策略,而不只是“我用python画了几张图”。这种闭环的表述,才是商业数据分析师和纯技术人员的核心区别。

6. 我的实操体会

这套卷子刷下来,我的最大感受是:互联网公司数据分析笔试越来越不考“死知识”,越来越考“活思维”。你背得住中心极限定理的公式,但如果你不知道它在AB测试里怎么用,这个知识就等于零;你写得出多表join的SQL,但如果你不知道业务表之间的关联关系代表什么业务含义,你取出来的数也没人敢信。

我在实际做数据分析时深深体会到,拿数据说话是最有力的说服方式,但前提是你的数据口径正确、分析框架完整、结论可落地。准备校招笔试,本质上就是在训练这套思维方式。每一次做题,都想象自己真的坐在业务会上,对面是产品和运营的同事,你不仅要告诉他们数据是什么,还要告诉他们数据意味着什么、该做什么。

最后再分享一个小建议:笔试刷题不能只刷一遍,至少要复习两遍。第一遍按完整模拟来做,检验速度和自己真实的水平;第二遍专门整理错题,把每道错题背后暴露的能力短板补齐。错题整理比盲目刷题有用得多。卷三这套题,哪怕放到现在,依然是很好的训练素材,把它吃透,再去面其他互联网公司的数据分析岗,你会发现很多题目都是相通的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询