ARTICLE DETAIL

资讯详情

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

2024淘天集团数据岗秋招笔试全解析:SQL、算法与业务题备考指南

2024淘天集团数据岗秋招笔试全解析:SQL、算法与业务题备考指南 2024年秋天的校招季网上铺天盖地都是“最难秋招”“HC骤减”的说法但真正到了投简历的时候大家拼的还是基本功和临场反应。我全程跟完了这一轮阿里巴巴淘天集团的数据岗笔试从投递入口、笔试通知到实际开考中间踩了不少坑也摸清了这个岗位的考察套路。今天就把“2024年秋招-阿里巴巴淘天集团-数据岗笔试”这件事从头到尾拆开聊覆盖题型结构、高频考点、实战代码、备考节奏希望能给正在准备或者明年要参加校招的朋友省下一点走弯路的时间。这篇内容适合的人群分三类一是准备投递淘天或者其他大厂数据岗的应届生二是想转行做数据开发、数据分析、数据科学的在职朋友三是单纯想看看大厂数据岗笔试到底考什么的人。不管你是哪一类我都会把这场笔试涉及的核心内容讲透尤其会补充网上很少提到的细节比如SQL题的时间陷阱、算法题的输入输出坑、业务场景题的答题话术这些才是笔试真正拉开差距的地方。1. 笔试前先搞明白数据岗到底考的是哪一类“数据人”1.1 淘天数据岗的岗位方向与核心能力要求很多人一听说“数据岗”以为就是写SQL、跑报表其实完全不是一回事。淘天集团的数据岗在校招和秋招里通常分成几个方向数据开发工程师、数据分析师、数据科学家偶尔还会挂出数据产品经理或数据仓库工程师的岗位名称。虽然都叫数据岗但笔试的侧重差别很大。数据开发方向核心考SQL、大数据组件Hive、Spark、Flink、算法题偏向工程实现。数据分析方向核心考SQL、概率统计、业务场景题偶尔有Excel或Python数据分析题目重业务理解。数据科学方向核心考机器学习基础、概率统计、算法题SQL弱化但也会出现重模型思维。2024年淘天的数据岗笔试混合卷实际上是把这些内容做了压缩和合并。它的特点是SQL必考、算法题必考、概率统计和机器学习以选择题为主、业务场景题至少一道。这也说明淘天希望招进来的“数据人”既有工程底子又有业务嗅觉能听懂业务方的需求也能写代码取数建模不是单一技能的螺丝钉。1.2 2024年秋招笔试的科目构成和时间分配系统开放后你会收到一封邮件通常在笔试前1-3天发出里面有笔试链接和截止时间。笔试时间一般90分钟到120分钟淘天数据岗通常定在90分钟题目量大概在25到35题之间包括选择题、SQL编程题、算法编程题和一道业务分析题。题型分布大致是这样的题目类型题量占比分值取向核心能力单选/多选概率、统计、ML基础30%-40%基础扎实性理论积累SQL编程题20%-30%取数能力数据操作算法编程题Python/Java/C20%-25%编码与逻辑计算机基础业务场景分析题10%-15%业务思维指标敏感度时间分配上我给一个比较稳的比例选择题控制在30分钟以内SQL题30分钟算法题25分钟业务题5到10分钟剩下5分钟检查。熟悉这套节奏基本不会出现交卷前十分钟还没开始写业务题的情况。2. SQL才是笔试的“分王”高频题型与踩坑点全解2.1 窗口函数留存率、复购率、TopN的三种标准写法SQL题在淘天数据岗笔试里权重极高因为这是数据岗日常工作中最基础也最核心的技能。考察的难度不是“会不会写”而是“能不能拿高分”。高频考点集中在窗口函数、多表关联、去重计数、时间函数、留存率计算。先说留存率这是经典中的经典。题目通常给你一张用户登录或订单表字段有user_id、order_date、order_amount让你计算某段时间内次日留存率或7日留存率。正确解法一定要用窗口函数先算出每个用户每个日期的首次活跃日再关联回原表判断访问日期是否满足留存条件。WITH user_first AS ( SELECT user_id, MIN(order_date) AS first_date FROM orders GROUP BY user_id ) SELECT first_date, COUNT(DISTINCT u.user_id) AS new_users, COUNT(DISTINCT CASE WHEN DATEDIFF(o.order_date, u.first_date) 1 THEN u.user_id END) AS retained_users, COUNT(DISTINCT CASE WHEN DATEDIFF(o.order_date, u.first_date) 1 THEN u.user_id END) / COUNT(DISTINCT u.user_id) AS retention_rate FROM user_first u LEFT JOIN orders o ON u.user_id o.user_id GROUP BY first_date ORDER BY first_date;这里有几个坑必须注意。第一个坑是DATEDIFF的用法不同数据库的字顺序可能不一样SQL Server里是DATEDIFF(datepart, startdate, enddate)MySQL里是DATEDIFF(enddate, startdate)笔试环境如果提供的是MySQL写反了结果就是负数统计直接错误。第二个坑是去重一个用户一天可能下多单所以必须用COUNT(DISTINCT user_id)否则留存率会虚高。第三个坑是左连接的写法必须保留全部新用户否则留存为0的用户会被过滤掉分母就错了。复购率也是必背题型计算每个用户的首次购买日和第二次购买日然后统计首次购买后7天内再次购买的用户占比。这种题的核心在于用窗口函数ROW_NUMBER()给每个用户的订单排序再取rn2的时间作为复购日。TopN问题更简单ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...)取排名即可但要注意分数并列时用RANK()还是DENSE_RANK()题目如果要求“排名不跳号”必须用DENSE_RANK()。2.2 别把SQL当成Excel时间陷阱与去重逻辑SQL题最坑的地方在于细节我总结了几个“一次错就整题零分”的点。时间字段的格式陷阱。很多题里order_date是带时分秒的时间戳比如2024-09-01 12:30:45如果你直接用GROUP BY order_date会把同一日期不同时分秒的数据拆成多行。正确做法是用DATE(order_date)把时间归一化到日期或者用DATE_FORMAT(order_date, %Y-%m-%d)视数据库而定。去重逻辑的边界场景。查GMV时订单表里若有退款记录通常要用状态字段过滤否则金额虚高。题目如果给出order_status字段要仔细读表头说明别一上来就SUM(amount)先看状态字段有哪些合法值。WHERE和HAVING的区别。笔试中常见“筛选出购买次数大于等于5次的用户”这类需求新手容易把聚合后的条件写到WHERE里导致报错。聚合条件必须用HAVINGWHERE是在分组前过滤行HAVING是在分组后过滤组。我在实际笔试时曾因为一个表别名漏了前缀导致SQL在本地测试通过、提交后报“Unknown column”白白浪费了十分钟。给所有字段写表别名前缀是个好习惯。3. 算法题数据岗的编程门槛与Python实操细节3.1 数据岗算法题的考察范围与LeetCode难度定位很多人以为数据岗不考算法这是错觉。淘天数据岗笔试会有一到两道算法编程题难度通常对标LeetCode中等偏下有时候会出现简单题但简单题也有送命题设置。考察范围集中在数组、字符串、哈希表、双指针、二分查找、排序、动态规划入门一维DP、二叉树基础偶尔有贪心和栈。高频题型我列一下两数之和、三数之和哈希表用法。最长连续递增序列双指针或贪心。合并两个有序数组双指针从后往前。反转字符串、字符串中的第一个唯一字符。二分查找及其变体。爬楼梯、打家劫舍这类一维DP。选题不会太难但要求写出能通过全部测试样例的代码。注意是全部样例不是示例样例所以边界条件非常关键。3.2 Python考场代码的高分写法与易错点如果你用Python写算法题有几个地方会直接影响通过率。输入输出格式。笔试系统通常是标准的ACM模式自己写input()和print()但有的平台提供模板不要改模板的类名和方法签名。我参加的那场系统会让你补全一个Solution类的方法方法返回值正确即可不需要手动解析输入这种情况简单很多但必须保证方法名和参数名与模板一致。空值处理和极端情况。比如数组为空、数组长度为1、目标值不存在这些情况必须单独考虑。做题时先把边界条件写着再写主逻辑能避免很多隐藏错误。以二分查找为例如果数组只有一个元素且正好等于目标值返回0否则返回-1这个分支写不好就是越界或死循环。复杂度的把握。数据量一般在10^4到10^5之间O(n^2)可能超时O(n log n)是安全的。笔试时如果想不出最优解法先用暴力算出一个答案再优化不要在一道题上卡死。Python刷题建议直接用LeetCode分类题库按“数组-哈希-双指针-二分-DP”的顺序刷100到150题数据岗完全够用。重点刷的是解题思路不是背代码因为考场题目很少和刷过的完全一样但内核都是那几个经典套路。3.3 算法题和SQL题的节奏博弈90分钟里算法题和SQL题怎么分配时间最合理我的经验是先把两道题都读一遍判断难度。如果SQL题看起来顺手先写SQL算法题如果在读题后10秒内没有思路先做业务题或选择题把算法留到最后。千万不要在一道算法题上死磕超过25分钟尤其是在它分值不高的情况下。数据岗笔试的判分通常是按测试用例百分比给分部分AC也比零分好得多。能写暴力解就写暴力解很多DP题暴力递归也能过部分样例至少能拿到基础分数。4. 概率统计与机器学习选择题里藏着大量送分题和雷区4.1 高频统计概念与概率模型选择题数据岗笔试的选择题部分覆盖范围广知识点杂但重复率很高。核心高频点如下。概率论基础古典概型、条件概率、贝叶斯公式、期望与方差的计算、常见分布二项分布、泊松分布、正态分布、均匀分布、指数分布。题目通常不会太复杂比如“某人投篮命中率0.6独立投5次命中3次的概率”直接用二项分布公式算。P(X 3) C(5,3) * 0.6^3 * 0.4^2 10 * 0.216 * 0.16 0.3456这种题就是送分但送分的前提是你记得公式。考前一定要把二项分布的期望np、方差np(1-p)背熟泊松分布的期望等于方差正态分布的68-95-99.7法则都是选择题里反复出现的。数理统计部分抽样分布、中心极限定理、置信区间、假设检验t检验、卡方检验、p值、回归分析的基本概念。常考的是p值含义正确的理解是“在零假设为真的前提下观察到当前或更极端结果的概率”不是“零假设为假的概率”这个选项如果出现一定是干扰项。4.2 机器学习高频考点与AB测试思维机器学习基础选择题是数据科学方向的重头戏也是数据分析方向的加分项。考察的知识点集中在监督学习线性回归、逻辑回归、决策树、随机森林、XGBoost、无监督学习K-means、PCA、模型评估精确率、召回率、F1、AUC、混淆矩阵、过拟合与正则化。几个高频且容易混淆的知识点我单独列一下。精确率Precision和召回率Recall的区别精确率是“预测为正的样本中有多少是真的”召回率是“真正为正的样本中有多少被找出来”。记法很简单分母不同一个分母是预测正类数量一个分母是真实正类数量。AUC的含义随机选取一个正样本和一个负样本分类器给正样本打分高于负样本的概率。AUC0.5说明模型没有区分能力AUC1说明完美分类。过拟合的解决手段增加数据量、正则化L1/L2、Dropout、早停、降低模型复杂度。笔试中常出现判断题比如“增加模型层数一定能降低过拟合”这显然错误模型太复杂反而加剧过拟合。AB测试题目在数据分析题里很常见考的是实验设计思维比如两个版本页面转化率差异是否显著、样本量计算、辛普森悖论等。答这类选择题先看清是问“显著性”还是“实际效应”别把统计显著当业务显著。5. 业务场景题笔试里最有区分度的环节5.1 指标定义与口径计算类题目的答题模板业务场景题是淘天数据岗笔试的特色也是很多技术型选手翻车的地方。这类题没有标准答案但评卷时会看你的分析框架、指标定义能力和业务敏感度所以答题的核心是“结构清晰、逻辑完整、指标可落地”。常见的第一类题是“请定义某业务的转化率指标并说明口径”。比如电商场景下给你用户浏览、加购、下单、支付四张表让你定义“加购转化率”。答题框架这样拆分子定义下单用户数去重分母定义加购用户数去重时间范围统一。多层级口径如果分母用“浏览用户数”就是浏览到支付的整体转化率如果分母用“加购用户数”就是加购后的支付转化率两者业务含义完全不同。口径细节同一用户多次加购怎么算、异常订单是否剔除、退款后是否保持转化都要说清楚。这样的回答每一个点都展示了你对业务和数据的双重理解比只写一句“用支付数除以加购数”强太多。5.2 指标异动归因类题目的“三步走”答题法第二类高频题型是“某天DAU或GMV突然下降你怎么排查”。这类题没有唯一答案但评卷人希望看到一套可执行的排查思路。我的答题套路是三步走第一步确认数据的真实性。先排查数据口径是否变化比如埋点是否漏打、ETL任务是否失败、数据源是否断裂、是否出现节假日或大促导致的同比口径差异。这是数据从业者的职业警觉很多人在第一步就忽略了。第二步拆维度定位。把总指标按用户维度新用户/老用户、渠道维度自然流量/付费流量/活动流量、设备维度iOS/Android、地域维度城市线级拆分找到下降最集中的子群。拆维度的逻辑是总指标人×频次×转化×客单四个因子逐一排查。第三步交叉验证归因。用其他相关指标验证判断比如DAU下降的同时新增用户是否下降、次日留存是否下降、推送点击率是否异常通过多指标联动判断是外部环境变化竞品活动、舆情还是内部产品变动发版、功能下线。这套框架无论笔试还是工作里排查问题都非常好用建议提前写熟考试时直接按框架套用既省时间又显专业。5.3 指标体系设计题的加分要点还有一类是让你为某个业务搭建指标体系比如“为淘天某频道设计一套用户增长指标体系”。这里最忌讳的是罗列一堆KPI而没有一个逻辑框架。我会先用“人-货-场”或者“获取-活跃-留存-转化-传播”的框架分层再在每个层次下面选择北极星指标和辅助指标。以北极大星指标为例用户增长场景应该选“活跃用户数”或“核心行为用户数”而不是“注册用户数”因为注册不代表有价值。辅助指标能解释北极星指标变化的原因比如新增来源、次日留存、人均使用时长、核心行为渗透率等。答这类题时要表现出口径意识每个指标都要给出统计口径说明比如“活跃用户数定义当天有任意浏览行为的去重用户”这样即使指标体系不完美也展示了你的专业细节感。6. 备考节奏与应试技巧从复习到交卷的完整清单6.1 校招笔试前四周的复习计划怎么排数据岗笔试的覆盖范围很广短期突击很难全面但可以按优先级安排。以四周为周期的话我给一个参考计划。第一周主攻SQL每天刷10道不同场景的SQL题覆盖窗口函数、聚合查询、多表关联、留存率计算、时间函数。推荐资料是《SQL必知必会》加LeetCode数据库题库或者牛客网的SQL专项练习。第二周主攻算法按“数组-哈希-双指针-二分-DP”的顺序刷题每天5到8道重点看题解里的时间空间复杂度讨论练习自己分析复杂度。第三周主攻概率统计和机器学习把常见分布公式、假设检验步骤、常用模型的原理和评估指标过一遍做选择题练习尤其是牛客网的数据分析师题库和算法工程师题库很多题目和真实笔试风格接近。第四周模拟实战每周日做一套完整的模拟题掐时间练习时间分配。找出自己的弱项优先补弱项而不是反复刷已经熟练的内容。6.2 笔试现场的5个实用技巧备考充分不代表一定能发挥出水平我在实际笔试过程中总结出几个特别有用的现场经验。一是打开题目先把所有题目扫一遍标注分值高低心里有个全局。如果连续几道选择题都不会先跳过不恋战后边的SQL题可能更容易拿分。二是SQL题写完先检查空值、重复值、时间格式这几个坑再点击运行。要养成“先本地心算一遍结果”的习惯比如查询结果的行数是否符合预期金额的最大值是否离谱机器判题很多时候不提示错误原因自己心算一遍能救回很多分。三是算法题先写if not nums: return 0这类边界判断再写主逻辑这一步能避免至少三成的隐形错误。四是打字快但别急笔试平台通常有代码自动保存但不会提醒你编译错误提交前一定要确认代码能compile别把没写完的代码交上去。五是注意选择题的“多选”陷阱题目如果没有明确说单选默认是多选漏选或错选都不得分。有的考生因为习惯了单选在多选题上吃了大亏。7. 常见问题与避坑实录7.1 笔试平台和环境的注意事项淘天笔试一般用的是第三方在线笔试系统支持在线编程、视频监控和屏幕监控。有几个实操性的坑值得提前知道。浏览器兼容性问题笔试前系统会提示使用Chrome或Edge不要用旧版本IE否则代码编辑器可能加载不正常。网络环境要保证稳定笔试途中如果断网系统有自动保存功能但可能需要重新登录提前把账号密码记好。关于代码自动保存平台通常会自动保存的间隔在30秒左右但万一系统崩溃保存的版本可能不是你最后的版本所以提交前务必检查左下角的“已保存”状态。这个细节很多人不注意直到成绩出来才发现代码是旧版本。监控系统会记录切屏次数不要因为想偷偷搜索而切出页面一旦被标记为作弊成绩直接作废还可能影响后续面试。我建议把本地IDE当作草稿纸使用但如果平台限制跳出页面就只在平台内写完别抱侥幸心理。7.2 时间不够用时的弃题顺序考试过程中时间不够非常正常这时候要懂得取舍。我的弃题顺序是先放弃最耗时的算法题只写暴力解再放弃业务场景题中的细节展开只写框架然后放弃选择题中完全不会的题目不浪费时间。SQL题分值高且确定性高绝对不能放弃即使只能写出一部分也要尽量写上因为SQL题的判分逻辑一般是跑测试用例部分输出也能得分。7.3 笔试与后续环节的联动逻辑笔试成绩不只是决定是否进入面试面试官可能直接看到你的笔试代码和答题记录。这意味着你的答题过程本身也是一个展示机会。代码里的注释、变量命名的规范度、SQL语句的排版是否整洁这些都会影响面试官对你的初始印象。我当年笔试时有一个SQL题写出了两种解法一种复杂度高但简单一种复杂度低但代码稍微绕我犹豫后选择了两种都写上并注释说明“解法一用于验证结果解法二用于生产效率”这个细节在面试时被面试官主动提出来夸奖过。所以在笔试时不要只想着“通过测试”更要想着“我在给未来的面试官写代码”这种思维方式会直接提升你的笔试表现。写在最后的一点经验数据岗笔试在整场秋招里只是第一道关卡但它决定了你能否拿到面试的入场券。我见过太多技术底子不错的朋友因为不熟悉题型、不重视业务题、在SQL细节上丢分倒在了笔试这关。准备这套笔试不需要智商超群需要的是把每个知识模块拆开练透再把答题节奏练成肌肉记忆。如果只让我给出一条建议那就是把SQL练到不用思考就能写出留存率、把算法边界条件写成条件反射、把业务题答题框架背得像自我介绍一样顺口。这三点同时做到淘天的数据岗笔试就不会再是你秋招路上的拦路虎而会成为你向面试官展示自己的第一块敲门砖。
返回列表