小红书数据岗秋招笔试复盘:SQL、留存率与业务分析全攻略

发布时间:2026/9/1 5:00:43
小红书数据岗秋招笔试复盘:SQL、留存率与业务分析全攻略 2023年的秋招被很多人形容为“史上最卷”这话一点都不夸张。作为亲历者我在九月中下旬收到了小红书的第二批数据岗笔试邀约投的是数据方向的岗位。在内容社区里小红书的数据岗笔试一直很有自己的风格——题量不算特别大但每道题都贴着业务场景出尤其爱在SQL和统计推断上做文章整体考察逻辑非常“商业化”。这篇文章不是官方真题的整理而是基于我实际参加后的复盘和备考经验把整场笔试的考察逻辑、题型分布、每类题目的应对思路都拆开聊一聊希望能给后续准备数据岗笔试的同学一点参考。1. 这场笔试在考什么2023秋招小红书数据岗的整体画像1.1 考试形式与时间分配我当时是在牛客网平台完成的笔试全程在线答题摄像头监控网页端有代码编辑器。第二批笔试安排在九月中下旬时间跨度大约是一个周末内的多个场次你可以根据自己的时间预约场次。整体时长我记得是120分钟题量大概在20道左右但涵盖的类型非常多选择题单选多选15道左右覆盖统计学、概率论、机器学习基础、业务常识。SQL大题2道需要在编辑器里写完整SQL。Python或算法题1道考察数据处理能力或基础算法思维。业务分析题1-2道以简答或论述的形式出现要求写出完整的分析思路。从分值分布来看选择题单题分不高但胜在数量多SQL大题的占比最高基本是半壁江山业务分析题最考验综合能力也是批卷时最拉开差距的部分。提示小红书数据岗的笔试分批之间题目会有一定重叠也会引入新题。不要指望背上一批的原题重点是掌握每类题型的解法。1.2 从岗位JD反推考察重心在投递岗位时我看到JD里反复出现几个关键词“对社区内容生态有理解”“有数据敏感度”“熟悉AB实验”“熟练使用SQL和Python”。这几个词基本定调了笔试的方向。数据岗在内容社区公司里并不只是做报表更多时候要回答“内容怎么分发”“用户为什么留存”“商业化如何增收”这一类业务问题。所以笔试题目不会考纯粹的计算机算法题而是会把所有技术考察都包裹在业务场景里。比如同样是考窗口函数标题可能会写成“分析某天发布笔记的用户次日留存情况”。基于这一点我的备考重点就调整为SQL熟能生巧、统计概念查漏补缺、业务分析形成自己的框架。整个过程不是背题而是围绕岗位需求做能力补齐。2. SQL占半壁江山窗口函数、留存与漏斗的实际操作2.1 高频考点定位小红书数据岗笔试的SQL题不太会考“alter table”这种偏运维的语法也不会考复杂的存储过程。它的重点非常突出多表关联JOIN考察怎么把两到三张业务表关联起来。聚合函数GROUP BY结合业务维度做统计。窗口函数重点中的重点rank、row_number、lag/lead出现的频率非常高。留存率计算典型的用户运营场景。漏斗转化从曝光到点击再到互动的路径分析。备考时我统计了自己刷过的十套左右互联网公司数据岗笔试题SQL部分出现“窗口函数”的概率几乎是百分之百。如果你还只会用简单的SELECT和WHERE那基本很难应付这类题目。2.2 留存率计算的完整解法留存在内容社区的产品里是一个核心指标。笔试里常见的出题方式是这样的假设有一张浏览记录表字段包括user_id、view_time、笔记id需要计算某一天的新用户次日留存率。这类题的难点在于“新用户定义”和“次日怎么算”。我先说标准解法-- 先找出某天的活跃用户 with active_data as ( select user_id, date(view_time) as active_date from view_log group by user_id, date(view_time) ), -- 找出每个用户首次活跃日期 first_data as ( select user_id, min(active_date) as first_date from active_data group by user_id ), -- 关联次日是否活跃 retention_data as ( select f.user_id, f.first_date, case when a2.active_date date_add(f.first_date, interval 1 day) then 1 else 0 end as is_retained from first_data f left join active_data a2 on f.user_id a2.user_id and a2.active_date date_add(f.first_date, interval 1 day) ) -- 计算次日留存率 select first_date, count(distinct user_id) as new_users, sum(is_retained) as retained_users, round(sum(is_retained) / count(distinct user_id), 4) as retention_rate from retention_data group by first_date order by first_date;这个解法里最容易出错的地方有三个新用户的定义要用“首次活跃”而不是“注册日期”因为业务系统里注册时间和实际开始使用产品的时间往往不一致。次日活跃的判断必须用日期函数处理比如date_add或datediff不能直接用字符串比较。要用左关联left join否则没有次日行为的用户会被过滤掉留存率会被虚高。注意笔试里时间字段通常很脏可能包含时分秒。建议第一步就先date()把时间截断到天再参与计算否则后续的关联会出现大量空值。2.3 窗口函数在排名类题目中的应用第二类常见题是排名题比如“找出每个类目下笔记互动量排名前三的内容”。这里核心就是要用row_number或dense_rank。select category_id, note_id, interact_cnt, rk from ( select category_id, note_id, interact_cnt, row_number() over(partition by category_id order by interact_cnt desc) as rk from note_interact ) t where rk 3;如果对窗口函数的执行逻辑不够熟悉很容易纠结“为什么不能在where里直接写row_number”。窗口函数是在WHERE之后执行的所以必须用子查询包一层。这个知识点几乎是笔试必考。延伸来看rank和row_number的区别也要心里有数。考试中遇到“并列排名”的要求时用dense_rank还是rank要看题目的具体描述千万别默认用同一种函数。3. 统计与概率选择题里的隐形杀手3.1 假设检验与AB实验的底层逻辑统计题在选择题里占的比例很高尤其是AB实验相关的内容。小红书这种依赖社区推荐机制的产品任何策略上线前都要做实验验证数据岗必须理解显著性检验。常考的点包括p值的含义p值不是“原假设为真的概率”而是“在原假设为真时得到当前或更极端结果的概率”置信区间的计算第一类错误和第二类错误样本量的确定与统计功效我印象比较深的一道题是关于“实验组显著优于对照组但涨幅很小是否需要上线”其实是在考察业务思维和统计思维结合的能力。如果你只懂统计学会选择按结果上线但如果懂业务就会考虑到成本、长期影响和实验周期。答案往往需要做综合判断。3.2 常见的场景化概率题除了统计推断概率题也会换着花样出现。我备考时整理了几类高频题型条件概率和贝叶斯公式给出某个行为的概率求这个行为发生后的后验概率。期望值计算比如计算一个运营活动的预期收益。随机变量分布二项分布、泊松分布在不同场景下的应用。举个例子考场上有一类常见题某个功能改版后用户点击率从5%提升到6%假设每天有10万用户看到该功能问这个提升在一天内带来的额外点击量期望是多少。这类题不算难但考场上很容易因为单位换算或百分比理解出错。我的建议是备考时把《概率论与数理统计》的核心公式重刷一遍特别注意贝叶斯公式和正态分布标准化这两块在选择题里经常换着考。4. 业务分析题从面试官视角拆解答题框架4.1 指标异常分析类题目业务分析题是小红书笔试里的压轴项考察的是“拿到一个业务问题你会怎么拆解”。这类题没有标准答案但评卷人心里有一套好的答题逻辑。我遇到的题型之一是“某天社区互动量明显下滑请分析可能的原因”。答题时切忌只列一个原因而是要按维度拆解数据真实性排查先确认数据口径有没有变埋点有没有漏统计任务是不是延迟了。这是分析的第一步也是很多人容易忽略的一步。外部因素是否有节假日、大促、竞品异动等外部环境变化。内部因素推荐策略是否调整、内容供给是否减少、产品功能是否出bug。用户分层把异常按新用户/老用户、不同活跃度用户拆分定位是哪部分人群出了问题。我在答题时选择了“先外后内、先整体后分层”的结构每一层都给出对应的验证方法和数据指标而不是空谈。4.2 指标体系设计类题目另一种常见题型是“帮某功能设计一套指标体系”。比如给一个“笔记搜索功能”让你设计指标体系。我当时采用的框架分三层规模层搜索UV、搜索PV、人均搜索次数。效率层搜索结果点击率、搜索后停留时长、搜索结果页到笔记详情页的转化率。质量层搜索后的互动率点赞、收藏、搜索无结果率、用户搜索满意度。设计指标时面试官看重的不只是“指标列得全”而是你有没有优先级意识。我特意在最后标注了“北极星指标”和“护栏指标”并且说明了为什么这两个维度不能只看单一指标。这种表达方式会让答题更有条理也贴近实际工作的思考方式。4.3 AB实验评估类题目很多数据岗笔试都会考AB实验评估小红书也不例外。常见的形式是“某功能改版后做了AB实验实验组显著优于对照组请你说明评估过程和需要注意的问题。”答题框架可以这样组织确认实验设计是否合理分流是否均匀、样本量是否足够、实验时间是否覆盖一周完整周期。确认指标选择是否科学主指标、次要指标、护栏指标分别是什么。看显著性采用什么样的显著性水平、是否做了多重比较校正。做分层分析看不同用户群体里的实验效果是否一致。判断是否上线结合提升幅度、实现成本和长期影响做综合决策。整个答题过程最好用“先说结论再展开理由”的结构因为阅卷人不太可能逐字细读重点看你的逻辑脉络是否清晰。5. Python与算法内容社区里的数据处理题5.1 pandas场景题是主要考察方向笔试里的Python题相对基础但也不会脱离数据岗的日常工作。我遇到的是关于数据清洗和统计的题目给定一个DataFrame需要完成若干操作去重、缺失值填充、分组统计、排序取TopN。这种题用pandas写起来很快比如按分组排序取TopNimport pandas as pd # 示例df包含字段user_id, city, spend_amount df pd.read_csv(user_spend.csv) # 去重 df df.drop_duplicates(subset[user_id], keeplast) # 缺失值处理 df[spend_amount] df[spend_amount].fillna(0) # 按城市分组计算每个城市用户的平均消费 city_mean df.groupby(city)[spend_amount].mean().reset_index() # 按城市分组取每个城市消费金额最高的3个用户 top_users ( df.sort_values(spend_amount, ascendingFalse) .groupby(city) .head(3) )这类题目的关键不是算法多复杂而是pandas的API是否熟练。考场上时间有限如果你还要反复翻文档基本就来不及。5.2 算法题难度不高但考察边界条件除了pandas题还会出现一道中等偏简单的算法题。我当时遇到的是“给定一个list找出其中出现次数最多的元素如果有多个则返回最小的那个”这类题用字典加排序就能解决。from collections import Counter def most_frequent(nums): counter Counter(nums) max_count max(counter.values()) candidates [num for num, count in counter.items() if count max_count] return min(candidates)这种题想拿满分关键在于处理边界条件空列表、只有一个元素、所有元素都不同、多个元素频率相同。笔试的判题系统会包含这些边界用例如果你没考虑周全很容易被扣分。准备Python部分时我建议把常见的输入输出写法、切片技巧、字典和集合的常用操作都练熟不需要刷硬核算法题但一定要能又快又稳地写出正确代码。6. 备考时间线与答題策略的复盘6.1 考前一周的安排收到笔试通知后我只剩一周时间准备这里分享一下我的安排。前三天集中刷SQL窗口函数、留存计算、漏斗转化这类高频SQL题每天至少写5道完整SQL并跑通。第四天到第五天回顾统计学核心概念尤其是AB实验评估、假设检验、置信区间凡是概念模糊的都用纸笔写一遍。第六天整理业务分析题的答题框架按“指标异常分析”“指标体系设计”“实验评估”三类各准备一个通用模板。最后一天调整状态把重点放在看错题总结上不再做新题。这个时间表可能不适合所有人但对数据岗笔试来说性价比最高的准备顺序是SQL优先统计次之业务框架最后。因为SQL是硬通货熟练度决定你能不能做完统计决定选择题的正确率业务分析决定你能否进入下一轮。6.2 考场上的答题顺序和心态我个人的经验是上来先快速浏览全部题目标记出SQL大题和业务题的难易程度然后按“先会做的选择题、再SQL、再Python、最后业务题”的顺序推进。原因很简单选择题是基础分先拿稳SQL和Python是硬分数务必留足时间业务题主观性强放在最后不容易影响心态。如果在SQL题上卡住超过15分钟我会果断跳过先做后面的题避免因小失大。实际考场上确实有一道SQL我第一遍读题没什么思路后来做完Python再回头看时反而在重新读题的过程中找到了突破口。提示笔试过程中不要在大量思考时发呆看屏幕编辑器有自动保存功能记得边写边梳理思路哪怕代码不完整也要把注释和逻辑写清楚。部分阅卷会关注你的解题意图。6.3 从笔试到面试的准备衔接笔试结束后不要等着出结果再做准备。我在笔试完的当天就开始准备面试可能问到的问题为什么报考小红书的数据岗、怎么理解内容社区的产品逻辑、手头有什么数据分析的项目经历。因为数据岗的面试通常会在笔试通过后一周内安排提前准备能让你在时间窗口里从容很多。另外一个容易被忽略的点是笔试里的SQL题目和业务分析题很可能成为面试官追问的材料。我面试时就被问到“你笔试里留存率计算是用的什么口径如果活跃用户定义变了结果会怎么变化”这说明笔试不只是筛选工具也是后续面试的参考素材。平时做题时多思考一步“为什么这么设计”对后续环节帮助很大。回看整场笔试让我最有感触的一点是小红书数据岗考察的内容并不偏难怪而是把数据工程师和数据分析师日常工作中最常打交道的东西全都拿了出来。如果你在SQL上能做到熟练在统计上概念清晰在业务分析上有自己的框架通过笔试的概率就会大很多。对大多数人来说不是不够聪明而是练得太少思考得不够深。希望这篇复盘能给你一个明确的准备方向。