ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

携程数据分析工程师笔试全解析:SQL、统计与业务思维

携程数据分析工程师笔试全解析:SQL、统计与业务思维 2025年春招已经启动携程集团的数据分析工程师岗位第一批笔试刚结束。身边好几个朋友考完就来找我聊天问得最多的无非是“考了什么”、“难不难”、“后面该怎么准备”。作为一个已经在这行摸爬滚打多年的老数据人也帮人改过不少笔试简历今天就把这轮笔试的考情、题型、踩坑点和后续准备方向一次性说透。无论你是刚投完简历等通知还是打算参加下一批笔试这篇文章都值得你花十分钟读完。先给个结论携程数据分析工程师的笔试本质上不是在考“你会不会写SQL”而是在考“你有没有用数据解决业务问题的底层思维”。题目覆盖面广从SQL到Python从统计概率到业务分析甚至还有少量机器学习的影子。但别慌它不会像算法岗那样啃硬核代码重点还是落在“数据如何驱动业务决策”这件事上。1. 岗位定位与笔试考核逻辑1.1 数据分析工程师和数据分析师到底有什么不同很多人投这个岗位的时候其实没搞清楚一个关键问题携程招的数据分析工程师和我们常说的数据分析师干的活并不完全一样。传统数据分析师的核心指标是“分析洞察”他们的产出通常是报告、PPT、专项分析结论更多服务于决策层或业务方。而数据分析工程师的工作重点是“把分析能力产品化、自动化、平台化”你得写稳定的SQL调度任务得搭建指标看板得处理数据口径不一致的问题甚至要参与数据仓库表结构的梳理和埋点规范的制定。换句话说数据分析师更像是“用数据写文章的人”数据分析工程师则更像是“把数据文章变成标准出版物的人”。笔试的时候携程会特别关注你在数据提取、清洗、建模、可视化链路中的工程化意识。比如一道SQL题别人可能只要求你查出结果但他们可能会多问一句这个结果如果每天自动跑你会在乎它的稳定性吗理解了这层关系你就知道笔试侧重点为什么和普通数据分析师不一样了。1.2 笔试在整个招聘流程中的实际权重携程的招聘流程一般是网申 → 在线测评/笔试 → 技术面通常是两到三轮 → HR面 → Offer。笔试在其中扮演的角色是一个“高效率的筛选漏斗”。说实话笔试成绩本身不会直接决定你能不能拿到Offer它更像是一个门槛。如果你笔试阶段挂了简历写得再漂亮也没机会进入面试。如果笔试成绩不错面试官反而会在面试中给你更高的起点预期——他会默认你已经具备了一定的数据基本功问题就会问得更深。这意味着备考策略必须清晰笔试的目标不是“考满分”而是“稳稳地通过别让某一项拉胯”。我见过太多人在SQL上花了大量时间刷LeetCode困难题却忽略了基础的统计学概率结果考完一看业务题没答好综合排名反而不理想。1.3 携程笔试的通用结构与时间安排从近几年和这次2025春招第一批的情况来看携程的数据分析工程师笔试整体结构基本稳定卷面分为四大块模块题型大致题量建议用时SQL编程手写SQL3-5题30分钟Python/算法代码题2-3题30分钟统计学/概率单选填空5-8题20分钟业务分析案例分析1-2题40分钟总时长通常在120分钟左右部分批次可能会延长到150分钟。从时间分配上可以看出业务分析和SQL是笔试的重头戏Python和统计相对平均。如果某一块你特别弱一定要提前做好取舍别在一道题上死磕到影响后面。2. 笔试核心模块与典型题型拆解2.1 SQL专项携程最看重的基本功SQL在携程笔试中的地位怎么说都不为过。因为数据分析工程师日常工作中大概率有60%以上的时间是在写SQL、调SQL、优化SQL。笔试考的SQL题不像LeetCode那样纯考逻辑而是明显带着业务痕迹。典型的SQL题目类型包括分组聚合比如计算每个城市的酒店平均间夜价格哪个城市的订单量最大这类题考的是GROUP BY和聚合函数的组合使用。多表关联比如订单表、酒店表、用户表之间的关联查询考的是JOIN的理解特别是LEFT JOIN和INNER JOIN的区别。窗口函数比如计算每个用户的第N次下单时间、计算累计消费金额、计算相邻两单的时间间隔。窗口函数几乎是必考的而且比重还不小。留存/漏斗计算比如计算某个月新激活用户的次日留存率、漏斗各环节的转化率这类题是携程特别喜欢的因为它直接对应OTA行业的核心运营指标。给大家出一道贴近真实的示例题表t_booking包含字段order_id订单号、user_id用户ID、hotel_id酒店ID、order_time下单时间、order_amount订单金额、city_id城市ID。 用SQL计算2025年1月每个城市的GMV排名前3的酒店hotel_id及其GMV。这道题的难度属于中等偏下但考察点很准窗口函数ROW_NUMBER()按城市分组、按GMV排序、取前N名。如果你只会GROUP BY可能就卡在这里了。参考解法思路WITH city_hotel_gmv AS ( SELECT city_id, hotel_id, SUM(order_amount) AS gmv FROM t_booking WHERE order_time 2025-01-01 AND order_time 2025-02-01 GROUP BY city_id, hotel_id ), ranked AS ( SELECT city_id, hotel_id, gmv, ROW_NUMBER() OVER (PARTITION BY city_id ORDER BY gmv DESC) AS rn FROM city_hotel_gmv ) SELECT city_id, hotel_id, gmv FROM ranked WHERE rn 3;这样的题你光写出来是不够的还得注意时间条件怎么判断、分组口径是否一致。笔试的时候如果能在注释里写上自己的口径假设会是个不错的加分项。2.2 Python与算法基础工程能力的分水岭Python模块一般不会考特别偏门的算法更多是工程实践向的题目。比如给你一个CSV文件要求你用Python完成数据读取、清洗和简单分析或者给一道数组/字符串处理的逻辑题用Python实现某个函数。这里要特别注意携程的Python题并不是单纯考察语法而是看你会不会用Python解决实际的数据处理问题。常见的考察点包括Pandas的DataFrame操作、缺失值处理、apply函数的使用、merge和concat的区别等。一道典型的考察题可能是这样给定一个订单数据表可理解为DataFrame包含user_id、order_date、order_amount三列请用Python计算每个用户按日期排序后的累计消费金额并输出每个用户的首次消费日期和末次消费日期。这类题用Pandas写起来非常直接import pandas as pd df pd.read_csv(orders.csv) df[order_date] pd.to_datetime(df[order_date]) df df.sort_values([user_id, order_date]) df[cumsum_amount] df.groupby(user_id)[order_amount].cumsum() first_last df.groupby(user_id)[order_date].agg([first, last]).reset_index() result pd.merge(df, first_last, onuser_id)如果没接触过Pandas用纯Python的列表和字典也可以做但效率会低不少。笔试时间有限建议提前把Pandas的groupby、merge、apply这几个最常见的方法练到闭着眼都能写出来的程度。2.3 统计与概率容易被忽视的隐形杀手这个模块的题量虽然不大但容错率极低。因为题型以选择、填空为主错了就是错了没有过程分。常见考点包括描述性统计均值、中位数、方差、概率计算条件概率、贝叶斯、假设检验p值、显著性水平、AB测试的基础概念。有一道经典概率题很多批次都出现过变体思路大家可以感受一下某酒店有70%的概率会被用户预订且预订后用户取消的概率是20%。请问用户最终完成入住的概率是多少这个题考察的就是条件概率P(预订且未取消) P(预订) × P(未取消|预订) 0.7 × 0.8 0.56。简单但容易因为读题不仔细而掉坑。统计学的部分我建议大家把几个核心概念理清楚p值到底意味着什么它不代表“备择假设为真的概率”、置信区间的真正含义、第一类错误和第二类错误的区别、样本量和统计功效的关系。这些概念不需要你会推导公式但一定要能说清楚它们在业务场景中的意义。2.4 业务案例考察数据思维的高阶战场业务案例题是整个笔试里最灵活、最能拉开差距的部分。携程作为OTA平台业务题往往围绕酒店预订、机票搜索、景区门票、度假线路等场景展开。题目会给你一段业务背景然后让你设计分析思路、确定核心指标、判断数据异动原因或者评估某个策略的上线效果。举个例子一道典型的业务题可能是最近一个月携程某城市酒店频道的点击率明显下降DAU没有显著变化但订单转化率下降了15%。请给出你的分析思路。这类题没有标准答案但面试官有一套默认的“优秀回答路径”确认数据口径先验证数据埋点是否有变动统计口径是否调整避免一开始就陷入业务归因。拆解问题转化率订单数/点击UV订单数下降可能是流量结构变化、竞争环境变化、产品体验问题、价格优势减弱等原因。定位维度从城市、酒店等级、用户类型、设备端、时段等维度拆分看下降是否集中在某个子群。提出假设并验证用数据分析验证假设比如如果价格劣势是主要原因那么价格敏感型用户的转化率降幅应该更大。输出建议最后落到可执行的业务动作上比如调整排序策略、增加优惠券投放、优化详情页加载速度等。记住业务题考察的从来不是“你的结论有多正确”而是“你的分析逻辑有多完整”。哪怕你最后的结论不够精确只要框架扎实、维度清晰就能得到一个不错的分数。最怕的是那种从头到尾只说一个原因、拿不出验证逻辑的回答。3. 实战准备策略与长期能力沉淀3.1 笔试前两周的高效冲刺方法如果你距离考试还有两周别想着“面面俱到”那样反而容易什么都没抓到。建议按照我下面的策略来安排时间第一周的重点是SQL和Pandas。SQL每天刷3-5道题重点练窗口函数和复杂JOIN题目可以直接在牛客或LeetCode的数据库题库里找优先做中等难度偏题怪题先跳过。Pandas则把groupby、merge、apply、pivot_table这四类方法搞得滚瓜烂熟配合真实数据集做一遍清洗和分析流程。第二周的重心转向统计和业务。统计概念用一天时间集中梳理一遍重点是把p值、假设检验、置信区间这几个概念用自己的话说通。剩下的时间全部花在业务案例上每天精读2-3道携程或同类OTA平台的业务分析题读完不要只看答案要把自己的分析框架写出来再跟参考答案对比差在哪补哪里。这里分享一个我自己刷题时的小习惯每做完一道题我都会在笔记本上用两到三句话写下“这题考的是什么能力”和“我的解法暴露了什么短板”。题目是刷不完的但能力点是有限的。当你做了超过20道题以后你会发现考来考去就那么几个能力点。3.2 从笔试反推面试如何提前布局技术面笔试的准备其实是面试准备的先声。很多人考完笔试就彻底放松了等到面试通知来了才临时抱佛脚这是非常可惜的。笔试里出现过的SQL题型、Python数据处理方式、AB测试概念几乎100%会以更深入的形式出现在面试中。比如笔试里如果你写了用窗口函数算留存率面试官一定会追问“这个窗口函数在底层是怎么执行的”、“如果数据量特别大窗口函数的性能怎么办”。别把笔试和面试当成分裂的两个环节它们是一套连贯的考察体系。建议你笔试结束后第一时间把自己在笔试里不确定的题目记录下来不管最后有没有通过都去查资料弄懂。哪怕只是多学了一个知识点你在面试中可能就多一次高光表现的机会。3.3 数据工程师的长期能力树不只是为了笔试从长远来看通过笔试只是职业生涯很早期的一小步。真正值得投入时间沉淀的是一棵完整的“数据能力树”。我在之前的文章里也反复提过这棵树它大致长这样底层是数据工具能力SQL、Python、Excel、BI工具这些是你的双手。中层是数据分析和统计基础描述统计、推断统计、AB测试、常用的数据建模方法这些是你的思维方式。上层是业务理解和沟通能力能听懂业务方的需求能把数据结论翻译成业务语言能推动决策落地。笔试考察的主要是前两层。但如果你想在数据分析这条路上走得远第三层才是真正的分水岭。从笔试第一天开始就试着带着“业务视角”去看每道题这个分析结果出来之后业务方能做什么做了之后对哪个指标有帮助这种思考习惯时间久了会成为你区别于其他候选人的核心优势。4. 常见问题与考场避坑实战记录4.1 笔试中的五大高频翻车现场我在跟很多参加过数据分析笔试的朋友复盘时发现大家踩的坑其实是高度相似的。整理成清单大家对照着检查自己有没有中招第一读题不仔细忽略时间范围、去重条件等关键字。很多SQL题的表里本身没有去重但业务上同一用户可能会产生多条记录题目要求“计算每个用户的首次下单时间”你直接写MIN(order_time)就好但如果题目说“一个用户一天内可能下多单求每个用户每天的订单量”你忘了DISTINCT或GROUP BY的具体内容结果就直接错了。第二Python题里只用原生语法硬写浪费大量时间。笔试里的Python题往往允许使用Pandas和NumPy但有些人习惯了刷算法题看到列表就for循环套for循环。不是说不可以而是在时间有限的情况下Pandas一行代码能解决的问题写20行循环容易出错还费时。第三统计题对概念的理解停留在表面。比如p值大小和“显著”的关系很多人只知道p0.05就显著却说不清为什么也说不清0.05这个阈值代表什么。选择题里一旦把概念换了种问法就完全懵掉。第四业务题只给结论不给分析过程。有些同学业务题写得特别“干”直接说“转化率下降是因为价格贵了”完全没有分层拆解、没有假设验证、没有数据支撑。这样的回答在面试官眼里几乎没有信息量。第五时间分配严重失衡。前30分钟用在一道SQL上死磕结果后面Python和案例分析都没时间写。笔试不像面试没有追问机会你把时间花在哪里分数就出在哪里。合理的时间分配本身就是一种能力。4.2 独家避坑技巧如何让阅卷人眼前一亮这里分享几个我自己实践下来特别有效的手段篇幅有限只讲最核心的三点第一SQL题里写明思路注释。笔试的阅卷现在大多是系统辅助人工抽查如果你在SQL注释里写清楚“这里的逻辑是先分组聚合再排名取每组前三”阅卷人一眼就能看出你有清晰的工程思维。当然前提是你的SQL本身能跑通注释是锦上添花不能用来掩盖错误。第二业务题里画分析框架图。这可能是笔试里最容易被低估的技巧。很多同学只知道写文字但如果你能在回答里用简单的框架图或思维导图呈现拆解逻辑绝对能让阅卷人在一堆文字答案中多停留几秒。这里注意笔试是线上还是线下是否支持画图如果支持就大胆用。第三回答里主动交代你做的假设。笔试题目往往信息不足比如业务分析题里没有给你详细的数据明细那你完全可以在开头写一句“当前信息有限我先做以下假设第一点击率定义是点击PV/曝光PV第二本分析暂不考虑节假日的影响”。这种主动管理分析边界的行为是高级分析师的典型特征。4.3 如果你笔试没发挥好该怎么办笔试没考好不代表这轮招聘就彻底结束了但这个“不代表”是有条件的。第一个条件是你要学会复盘搞明白自己到底是知识点欠缺还是时间分配失误还是临场心态崩了。不同原因对应完全不同的补救策略。第二个条件是积极争取面试机会。携程这类大厂的面试筛选不完全依赖笔试成绩简历上的项目经验、实习经历同样是重要的判断依据。如果你有特别匹配的项目笔试成绩一般也有可能被捞起来面一轮。当然这里不建议大家走什么“偏门路子”把心思放在实力和复盘上永远是最稳的。第三个条件是把眼光放长远。春招笔试只是你职业生涯里的一个小节点后续还有暑期实习、秋招还有你工作三五年后回头看根本不值一提的很多关卡。笔试没考好当然会遗憾但真正限制你的不是这次的失利而是失利后你选择继续往前走还是原地叹气。5. 写在最后的一点个人体会从我这些年帮人改简历、做模拟面试的经验来看能通过携程数据分析工程师笔试的人往往不是基础最扎实的那个而是“心态最稳”的那个。他们懂得在有限时间内做取舍懂得用工程思维补全题目信息更懂得把自己的分析思路清晰外化给阅卷人。这次2025春招第一批笔试已经过去了无论你发挥如何都别过多纠结。接下来要做的是根据自己真实的情况把SQL窗口函数、Pandas处理、统计概念、业务拆解框架这四块再过一遍。哪怕只是每天多练一道题等到面试通知到来的时候你也会比今天的自己更从容一点。最后再分享一个小技巧考前那一晚别刷难题了把写过的代码注释、复盘笔记、思考框架翻一遍就睡。数据岗位考察的不只是你会什么更是你在压力下能稳定输出多少。好好休息比什么都管用。
返回列表