ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

唯品会数据岗校招笔试复盘:题型拆解与备考策略

唯品会数据岗校招笔试复盘:题型拆解与备考策略 唯品会2018校招数据岗笔试题复盘从题型到思路一次讲透每年秋招电商平台的数据岗笔试题都是求职者绕不开的关卡。我当年投唯品会数据岗时拿到卷子的第一反应是题量适中、方向明确但每道题都暗藏业务逻辑。和纯考“技术记忆”的题不一样唯品会这套题明显在筛选“能用数据解决业务问题”的人。这篇文章就把我对这套题的复盘和拆解完整写出来给正在准备电商数据岗位笔试的读者做个参考。这套题覆盖了SQL技能、概率统计、业务分析、算法基础四个方向整体难度在互联网校招数据岗中属于中等偏上。适合正在准备秋招的数据科学、商业分析、数据分析类求职者也适合刚入职的数据新人用来自测基本功。我会结合自己的答题过程、后续工作中对这些知识点的验证逐类拆解题型背后的考察意图和解题思路。1. 唯品会数据岗笔试的整体画像题型结构与考察逻辑1.1 这套题到底在考什么先说最直观的感受。拿到试卷大概翻了五分钟我心里就有一个判断这不是一套“背多分”的题每一道题都能在真实电商业务里找到对应场景。考察维度大致可以分成四块。第一块是SQL题这是数据岗的看家本领。唯品会作为品牌特卖平台订单、用户、商品、活动数据都是典型的关系型数据。笔试里给的表结构基本就是真实业务表的简化版。第二块是概率统计题这部分考察的不是纯粹数学公式的记忆而是和业务决策挂钩的思维。比如有一道题给出某活动的点击率和转化率让你判断某个渠道的投放效果是否显著这其实就是工作中每天都要做的假设检验。第三块是业务案例题比如用户分层、促销活动效果评估这道题的场景直接掏自唯品会的核心业务。第四块是机器学习基础考了特征处理和模型评估的选择。这四块的比重和典型题型我整理成了一张表。考察模块题量占比典型题型对应业务场景SQL题约30%留存率计算、复购率统计、订单明细查询日常数据取数与指标监控概率统计约25%条件概率、贝叶斯、期望收益、显著性检验活动效果评估、渠道质量判断业务分析约30%用户分群、促销评估、漏斗分析核心电商业务分析需求算法基础约15%特征筛选、模型评估指标选择用户画像、推荐系统优化1.2 从题目设计反推岗位能力要求很多人觉得笔试就是知识点的堆砌其实不然。企业出题尤其是校招数据岗本质是想快速筛出“来了就能干活”的人。唯品会这套题最让我印象深刻的是它几乎没有纯理论题每道题都给了一个业务场景做外壳。这背后透露出数据岗的真实能力要求第一是数据提取能力指标定义得再清楚拿不到准确的数据就是空谈第二是量化分析能力能把业务问题抽象成数学问题再算出可量化的结论第三是业务理解能力尤其像唯品会这样的特卖电商活动节奏密、品牌多、用户生命周期短数据分析师必须快速理解业务方的真实需求第四是模型应用能力不一定要求你从零实现一个算法但要知道什么场景该用什么模型以及如何评估模型的效果。了解这一点之后你对笔试的复习方向会更清晰做SQL题别只追求写对想一想这个指标是给谁看的算概率题别只套公式想一想这个数字能支撑什么决策。有了这个视角再来看具体题型就更有感觉了。2. SQL实战题电商数据岗的看家本领2.1 从取数思维到业务洞察一道典型SQL题拆解SQL题是这套卷子的重头戏。我记得有一道题是给定订单表orders和用户表users计算每个品类的复购用户数。表结构大概是这样的-- 用户表users -- user_id, sex, age, register_date -- 订单表orders -- order_id, user_id, item_id, category_id, pay_time, amount这道题表面上是考SQL语法实际上考的是你如何定义“复购用户”。我当时在答题纸上写了比较稳妥的解法先找出每个用户在每个品类下的下单次数再筛选下单次数大于等于2的用户最后按品类汇总用户数。SELECT category_id, COUNT(DISTINCT user_id) AS repurchase_user_cnt FROM ( SELECT category_id, user_id, COUNT(*) AS order_cnt FROM orders WHERE pay_time IS NOT NULL GROUP BY category_id, user_id HAVING COUNT(*) 2 ) t GROUP BY category_id这道题真正的分水岭在于你有没有考虑订单状态。真实的电商订单表里会有“已支付”“未支付”“已退款”“已取消”多种状态。如果没有做pay_time或者订单状态的过滤算出来的复购数会有明显虚高。我后来和几个一起面试的同学交流过不少人在这里就丢了分。另一个值得注意的点是“复购”的时间窗口。如果业务方的定义是“30天内再次购买”那就需要加入时间窗口的过滤条件。笔试题没明说时可以在答题纸上补充说明你对“复购”的定义并给出带有参数定义的SQL。这种“主动定义口径”的意识恰恰是面试官眼中区分数据工程师和分析师的关键。2.2 窗口函数与留存率计算“看似会做、实际拿不满分”的题还有一道SQL题要求计算某月的用户留存情况准确描述是“计算2023年5月新注册用户在6月、7月、8月的留存率。”这道题当年难倒了不少人因为它考到了窗口函数和回刷数据的处理。第一版解法里很多同学上来就用GROUP BY粗暴分组在做留存时确实容易卡住。正确的做法是先定义一个“首购/注册时间”的标签然后拉出每个用户在每个月的活跃记录再用时间差或月份差判断留存状态。我当时的思路是这样分层写的WITH user_base AS ( SELECT user_id, MIN(pay_time) AS first_pay_time FROM orders WHERE pay_time 2023-05-01 AND pay_time 2023-06-01 GROUP BY user_id ), user_active AS ( SELECT user_id, DATE_FORMAT(pay_time, %Y-%m) AS active_month FROM orders WHERE pay_time 2023-05-01 AND pay_time 2023-09-01 GROUP BY user_id, DATE_FORMAT(pay_time, %Y-%m) ) SELECT ua.active_month, COUNT(DISTINCT ua.user_id) / COUNT(DISTINCT ub.user_id) AS retention_rate FROM user_base ub LEFT JOIN user_active ua ON ub.user_id ua.user_id GROUP BY ua.active_month这个解法的关键点有几个。第一是用户基群要固定只能用5月的新客不能用后来补录的数据刷新这个集合第二是活跃月的数据用LEFT JOIN保留避免新用户没有后续活跃而被直接过滤掉第三是分母保持恒定这样才能让各月留存率之间有可比性。这类SQL题的坑不在语法而在数据口径。比如用户在某个月下单了但后来退款这笔订单算不算活跃直接影响留存结果。笔试题里往往不会把这些口径说得很明确你需要在答案里补充假设并和面试官说明“如果需要我可以调整where条件来适配具体的业务定义”。这种表达不仅展示你的技术能力更展示你的业务意识。2.3 笔试之后我才悟到的SQL能力边界现在回头看这套SQL题我有个特别强烈的感受笔试考察的SQL能力和工作中实际使用的SQL能力差距体现在两个地方。第一个差距是“取数的准确性”还是“口径的合理性”。笔试答案只要逻辑正确就能得分但实际工作中你写出来的每一个指标都要经得住业务方的挑战。你在唯品会做用户运营分析业务方问你“这个复购率为什么比上个季度高了2个百分点”你不仅要能写SQL还要能快速想到“是不是新用户占比提高了”“是不是大促活动影响了购买周期”。这些思考方式做题的时候就要开始有意识地训练。第二个差距是“单表查询”和“多表复杂查询”的熟练度。笔试里的SQL题虽然也有多表连接但数据量小跑得快。实际业务中动辄千万级的数据表如果不注意索引、分区、查询效率一个看似正确的SQL可能跑几十分钟都出不来结果。我建议求职者在准备笔试SQL时不要只刷LeetCode上的数据库题也可以多写一写涉及窗口函数、多级嵌套、CASE WHEN逻辑组合的复杂查询提前适应真实数据场景。3. 概率统计题数据岗基本功的硬核检验3.1 条件概率与贝叶斯一道让人翻车的经典题概率统计模块有一道题让我印象非常深原题大概是“某商品页面的点击率为10%点击后下单的概率为5%未点击但直接下单的概率为2%。现在有一位用户产生了订单请问他点击过商品页面的概率是多少”这道题本质上是贝叶斯公式的典型应用。设事件C表示“用户点击了商品页面”事件O表示“用户产生了订单”。已知P(C)0.10P(O|C)0.05P(O|¬C)0.02。要求的是P(C|O)。根据贝叶斯公式P(C|O) P(O|C) × P(C) / [P(O|C) × P(C) P(O|¬C) × P(¬C)]代入计算 P(C|O) 0.05 × 0.10 / (0.05 × 0.10 0.02 × 0.90) 0.005 / (0.005 0.018) 0.005 / 0.023 ≈ 0.2174答案是约21.74%。很多同学一眼看到“点击率10%点击后下单概率5%”容易直接答“50%”这就是混淆了条件概率的方向。贝叶斯公式的核心在于你要结合“先验概率”和“似然概率”来推断“后验概率”而不是直接拿条件概率当结论。这道题放在电商场景里非常实用。数据运营经常要根据用户的行为轨迹判断其购买意图比如一位用户浏览了某个品牌专场但还没下单系统要估算他最终下单的概率有多大就需要类似贝叶斯推断的逻辑。理解了这一点你就不只是在做题而是在理解用户行为预测的核心思路。3.2 期望值与业务决策从概率题看产品思维还有一道期望值的题目大概描述是“某平台准备对用户发放一张满200减50的优惠券已知每个用户领取优惠券的概率为40%领取后使用优惠券的概率为30%。假设符合条件用户的平均客单价为300元平台毛利率为20%请问每发放一张优惠券平台的期望收益是多少”这道题要拆成两步来做。第一步计算优惠券实际被使用的概率是0.4 × 0.3 0.12。第二步计算使用优惠券之后对平台利润的影响。不使用优惠券时平台从该用户身上获得的毛利是300 × 20% 60元。使用优惠券后用户需要支付的金额是250元平台收入减少50元但前提是用户因为优惠券而产生了原本不会产生的订单。这里有一个隐含的业务概念叫“增量成交”。如果用户不管有没有券都会买那这张券对平台来说只是利润损失如果用户是因为有券才买那这张券带来了新的利润。题目里没有直接给出这个参数但我们可以算两种极端情况下的期望如果所有用券订单都是增量订单平台的期望收益是0.12 × (250 × 20%) 0.88 × 0 6元如果所有用券订单都是存量订单平台的期望收益是0.12 × (60 - 50) 0.88 × 60 54元。现实情况介于两者之间。这个话题继续深挖就变成了C端电商常见的“优惠券ROI测算”你需要靠A/B测试来估计增量率。笔试时能把这道题算到“要考虑增量订单”这个层面就已经比大多数只按固定公式算期望的同学高出一个段位了。这样答题既展示了数学能力也展示了商业思维。3.3 假设检验与置信区间一道判断投放效果差异的题印象里还有一道统计推断的题问的是“某活动页面的点击率在改版前后各统计了10000次曝光改版前点击率为5%改版后点击率为5.5%请问改版是否有显著提升”这道题表面上是让你做假设检验实际上考察的是样本量、效果大小和显著性之间的折中关系。两个独立比例的z检验可以直接套用公式但更重要的是理解样本量足够大时即使是微小的差异也可能统计显著但业务上未必有实际意义。我当时在答案里除了写出z值和p值的计算还补充了一个观点如果5%到5.5%的提升能带来百万级用户的增长那这个提升就是有意义的如果只是千级别的小流量实验那这个差异的置信区间会非常宽需要谨慎判断。这个“统计显著性≠业务显著性”的意识是我在后续工作中体会最深的。笔试里把它体现出来容易给面试官留下深刻印象。4. 业务案例分析电商数据岗的“行业壁垒”4.1 用户分层与RFM模型在唯品会场景的落地这道题的场景非常唯品会平台有大量品牌折扣商品用户购买频次高、单价差异大如何对用户进行分层以便做差异化的运营触达。我看到这道题的第一反应是RFM模型即按最近一次购买时间Recency、购买频次Frequency、购买金额Monetary三个维度给用户打分。但如果你只是把RFM的公式默写上分值不会高。你要结合特卖电商的特点去做调整。比如唯品会的用户购买行为有明显的“活动驱动”特征大促期间的订单和日常订单的金额、品类差异很大如果直接用全量历史数据做RFM就分不清“大促型用户”和“日常型用户”。更好的做法是把大促订单和日常订单分开建模或者用“大促参与度”作为一个额外维度纳入分层体系。我当时还提出了一个具体可落地的分层方案将用户按RFM得分划分成八类重点运营“重要价值用户”和“重要发展用户”对“一般挽留用户”做定向唤醒。这不是新知识但能体现出“我理解这个模型怎么用”而不是“我背过这个模型”。4.2 促销活动效果评估对比组的选取思路业务案例里还有一道和促销评估相关的题大致问法是“某品牌在平台做了一场限时折扣活动活动期间该品牌销售额大幅提升如何判断这场活动是否真正有效”这其实是一道经典的增长分析题考察的是“增量”思维。销售额提升可能来自三个部分品牌既有用户的自然购买、活动吸引的新用户、以及原本会买但推迟到活动期购买的“透支”用户。所以评估活动效果时不能只看活动期的GMV还要对比活动前后的销售走势以及和未参加活动的类似品牌做对照组比较。我当时在答题时画了一条“活动前后GMV趋势线”的思路并提出了一个最简单的对照组方案找一个品类相似、客单价相似但未参加活动的品牌在相同时间段内做销售趋势对比计算活动品牌的“相对增量”。如果笔试时间允许可以用双重差分法DID来做更严谨的因果推断。这种从“归因逻辑”入手的分析方式是我后来做营销效果评估时一直沿用的核心方法论。4.3 A/B测试样本量计算与显著性判断的实战注意点这道题把A/B测试放在一个实际业务场景里“平台上线了新的推荐算法需要评估是否全量上线试设计实验方案。”这类题考察的不只是统计知识还包括实验流程的完整性和业务边界的把握。我的答题框架分几步第一明确实验的目标指标比如人均点击量、人均GMV以及护栏指标杀体验指标比如退款率、投诉率第二计算所需样本量这需要设定显著性水平α0.05、统计功效1-β0.8并预估实验组和对照组指标差异的大小第三设计分流策略保证用户维度分流、且实验组和对照组用户特征分布一致第四设定实验周期要覆盖完整的消费周期避免只测一个周末带来的偏差第五分析结果时不仅要看p值还要看置信区间和实际业务收益。这里有一个容易被忽略的细节样本量估算。简单比例类指标的样本量公式是 n (Zα/2 Zβ)² × (p1(1-p1) p2(1-p2)) / (p1 - p2)²如果你在笔试时记得这个公式并代入题目假定的点击率数据算出一个具体数值会明显拉开和其他人的差距。5. 算法与机器学习基础数据岗笔试的次重点5.1 特征工程从一道特征筛选题说起机器学习这部分题量不大但有一道特征筛选的题很典型。题目给了一个用户购买预测的二分类任务包含年龄、性别、历史购买金额、最近一次购买距今天数、用户注册时长、商品页停留时长等特征。问你会如何选择和使用这些特征。这道题考察点在于特征工程的完整度。第一要区分连续特征和类别特征年龄、金额这类连续特征可以考虑分箱或标准化性别属于类别特征需要做编码处理第二要检查特征之间的相关性比如“历史购买金额”和“用户注册时长”可能存在相关性共线性会影响模型稳定性第三要考虑特征的时间有效性比如“最近一次购买距今天数”是动态特征随着时间推移有意义而“用户注册时长”相对静态两者要合理配合使用。我当时补充了一个建议可以用基于树的模型做特征重要性排序再结合业务认知筛选特征。这不是唯一答案但能说明你有“业务算法”的双重视角。5.2 评估指标选择AUC、F1还是准确率还有一道题是“信用卡欺诈检测场景中正样本只占1%你会选择什么指标评估模型”这道题我是实际经历过的准确率在这类不平衡数据上会失真因为全部预测为负样本也能达到99%的准确率。更好的选择是F1分数、AUC、召回率等对少数类敏感的指标。在欺诈检测场景里通常优先关注召回率因为漏掉一个欺诈交易的成本远高于多拦截一个正常交易。接着我又引申到业务成本的权衡。如果欺诈拦截会导致正常用户被误伤你可能需要在召回率和精确率之间找一个平衡点这可以引入业务成本矩阵来定。笔试中把这个层面的思考写进去会显得有深度。5.3 这一部分真正想考察的能力算法题在数据岗笔试里的占比往往不高但它的存在意义不是让你拿高分而是测试你是否有基本的机器学习素养。就算你投的是偏业务的数据分析岗也需要了解特征工程和模型评估的基本概念因为你日常合作的数据科学家或者算法工程师会和你说着共同的语言。这套笔试的算法题考得就是“常识级别”的机器学习能力只要系统学过一段时间机器学习不至于拿不到分。6. 答题策略与备考复盘从笔试题到入职准备6.1 时间分配与答题顺序的实战经验整个笔试的答题时间我记得是90分钟题量对于多数人来说是够的。但我的一个朋友就没答完原因是他在SQL题的优化解法上纠结了太久。这一点我特别想强调笔试里能写对比写得“最优”重要得多。哪怕你的SQL写法是三层嵌套只要逻辑清晰、能跑通得分和窗口函数一步到位的写法不会有本质差别。我自己的策略是先做SQL题里那些逻辑最直接的再做概率统计题的公式推导然后留充足的时间给业务案例题。业务案例题是主观题没有标准答案但分值高且面试官能从你的答案里看到你的思维过程这比做对一道选择填空题更重要。时间分配上可以参考SQL题35分钟概率统计25分钟业务分析25分钟算法基础5分钟最后留10分钟回头检查。6.2 我踩过的坑与复盘总结复盘这套笔试我有几个特别深刻的教训。第一个坑是“过度追求SQL的优雅解法”。当时有一道题可以用窗口函数一步搞定我却在下面写了一大堆子查询花了过多时间去验证逻辑。事实证明只要答案正确子查询并不会扣分但时间就白白耗掉了。后来我总结了一条经验笔试答题先求正确再求优雅。第二个坑是“业务题答得太空”。我在业务案例题的第一版答案里写了大量“建立指标体系”“完善数据监控”这类虚词后来意识到这是最容易给阅卷人“减分”的操作。业务题要落到具体可执行的动作上。同样是分析用户流失说“用最近一次活跃时间和活跃频次定义流失用户然后按渠道、商品偏好分群对比流失率”就比“加强用户挽留”具体得多。第三个坑是“忽略题意中的时间口径”。概率统计题里有一道关于留存率的题我没有仔细看“新注册用户”和“首单用户”的区别差点答偏。后来养成了一个习惯拿到题先圈出时间条件、用户范围和指标定义再动笔。6.3 基于这套题数据岗求职者应该怎么准备结合这套唯品会笔试题的复盘我想给正在准备数据岗校招的读者几条更具操作性的建议。第一条是打好SQL基本功但不要停在“能写出来”的层次。去找一些真实的业务场景比如订单表、用户表、商品表模拟真实的取数需求练习留存率、复购率、漏斗转化、用户分层这些高频指标的SQL写法。我会建议你用一份公开的电商数据集来练手不要把时间都花在看题解上亲自写出来的才是你的。第二条是概率统计题要结合业务场景去做。单独做概率题很容易但要反复思考“这个数字在业务里意味着什么”。比如算完点击率提升的显著性后想一想样本量多大才能让这个差异显著成本是多少。这种思维方式的训练远比多背几个公式有价值。第三条是业务分析题要建立“框架性思维”。多读一些电商、零售行业的数据分析案例了解常用的分析框架比如漏斗模型、RFM用户分层、A/B测试流程。做题时以这些框架为基础再补充场景化的细节答案的完整度和说服力会超出平均水平。第四条是算法基础不要忽视。虽然占比不高但一道简单的特征工程题或评估指标选择题就能反映出你有没有系统的机器学习认知。如果面试岗位偏数据产品经理或商业分析师至少要把“精确率、召回率、AUC、过拟合、交叉验证”这些概念搞清楚并知道什么业务场景下优先选择哪个指标。就我个人而言这套笔试题给我最大的启发并不是某个具体知识点而是它让我提前认识到数据岗的日常是什么样子。你每天面对的不是抽象的算法题而是一个个鲜活的业务问题这个活动的流量质量怎么样用户为什么流失优惠券的ROI到底怎么算推荐策略改版之后有没有带来真实增量。笔试只是入场券真正考验人的是入职之后对问题的拆解能力、对数据的敏感度以及与业务方沟通的耐心。不过这些能力确实可以从准备笔试的这一刻就开始有意识地积累。
返回列表