京东数据分析岗面试经历分享:SQL+Python+业务思维全考察
2年数据分析经验社招京东数据分析岗面试全复盘,含SQL窗口函数、Python pandas、AB测试、业务指标拆解等真题详解,京东数据分析面试2026最新经验。
背景介绍
先说下我的情况,2年数据分析经验,目前在一家互联网公司做数据分析师,主要负责用户行为分析和业务数据监控。日常工作就是写SQL取数、做报表、跑AB实验这些。公司不算大,数据团队就5个人,什么活都得自己干,从取数到建模到可视化一条龙。
说实话,在小团队做数据分析,最大的问题就是成长空间有限。业务方提什么需求就做什么,很少有机会做深度的专题分析,更别说搭建完整的数据体系了。所以一直想找个更大的平台,能有更丰富的数据场景和更专业的团队。
今年4月份,一个猎头在LinkedIn上找到我,说京东在招数据分析师,问我有没有兴趣。说实话京东一直是我想去的公司,毕竟电商领域的数据体量和复杂度都是顶级的,对数据分析的要求也更高。猎头帮我投了简历,大概3天后就收到了面试邀请。
完整面试流程复盘
一面(约1小时,SQL+Python+业务题)
一面的面试官是数据团队的一个资深分析师,看起来30出头,问问题很直接,不绕弯子。面试分为三个部分:SQL、Python、业务分析。
SQL部分:
面试官先问了一个基础问题:窗口函数中rank、dense_rank、row_number的区别。这个我答得比较流畅——rank是并列排名会跳号(1,1,3),dense_rank是并列排名不跳号(1,1,2),row_number是不管并列直接递增(1,2,3)。然后面试官出了道实战题:求连续3天登录的用户。
这道题的思路是:先按用户分组,用row_number给登录日期排序,然后用登录日期减去排序号得到一个"基准日期",如果同一个用户的基准日期出现3次以上,就说明有连续3天登录。我写了大概10分钟,面试官让我解释了一下逻辑,然后追问了如果数据量很大怎么优化——我讲了可以先按日期分区,减少单次处理的数据量。
Python部分:
问的第一个问题是pandas中merge和join的区别。我讲了merge是更通用的合并方式,可以指定left/right/inner/outer,可以基于多个列合并;join默认是基于索引合并,语法更简洁。然后面试官问了一个数据清洗的实际问题:有一个用户行为日志表,里面有重复记录和异常值,怎么清洗?
我的思路是:先用drop_duplicates去重,可以根据用户ID+时间戳+事件类型来判断重复;然后用describe()看数值型字段的分布,用3σ原则或箱线图识别异常值;对于缺失值,根据业务场景选择填充或删除。面试官对这个回答比较满意,追问了如果异常值占比很大怎么办——我说要和业务方确认,可能是数据采集的问题,不能简单删除。
业务分析部分:
面试官出了一个经典问题:如果GMV下降了20%,你怎么分析?我按照"总体→拆解→定位"的思路来回答:
1. 先确认数据准确性——是统计口径变了还是真的下降了?
2. 按维度拆解——按时间(是突然下降还是持续下降)、按品类(哪个品类降幅最大)、按渠道(哪个渠道出了问题)、按新老用户(是新用户少了还是老用户不买了)
3. 定位原因——结合业务动作(有没有改版、有没有促销结束、竞品有没有大促)
4. 给出建议——根据原因提出对应的解决方案
面试官追问了:如果按品类拆解后发现所有品类都在下降,你怎么进一步分析?我说那就看是不是流量端的问题——整体流量是否下降?转化率是否下降?客单价是否下降?逐层定位到具体的环节。
二面(约1小时,AB测试+指标体系+数据看板)
二面的面试官是数据团队的负责人,问题更偏方法论和实际落地。
AB测试设计:
面试官问了一个很实际的问题:如果要测试一个新的推荐算法,你怎么设计AB实验?我从以下几个方面展开:
1. 实验设计:确定实验组和对照组,选择分流方式(按用户ID hash分流),确定实验周期(至少一个完整周期,考虑周末效应)
2. 指标选择:核心指标(点击率、转化率)、护栏指标(确保不会负面影响其他指标,如退货率、客诉率)
3. 样本量计算:基于最小可检测效应(MDE)和统计功效(通常取80%),用公式或在线工具计算
4. 结果分析:用t检验或卡方检验判断差异是否显著,注意多重比较问题
面试官追问了:如果实验结果显示核心指标提升显著但护栏指标也有负面影响,你怎么决策?我讲了需要评估综合收益——如果核心指标的提升价值远大于护栏指标的负面影响,可以上线但需要持续监控;如果负面影响不可接受,需要优化方案后再测试。
指标体系搭建:
面试官让我给一个电商APP设计指标体系。我从OSM模型出发:
1. 目标层(O):GMV、用户数、留存率
2. 策略层(S):流量获取、转化提升、客单价提升、留存改善
3. 度量层(M):DAU、UV、转化漏斗各环节转化率、客单价、复购率、7日/30日留存
面试官对这个框架比较认可,但指出我遗漏了供给侧的指标——商家数、商品丰富度、履约时效这些也很重要。确实,电商是双边市场,我只考虑了用户端。
数据看板设计:
面试官问:如果要给业务负责人做一个日常经营看板,你会放哪些内容?我讲了:
1. 核心KPI卡片:GMV、订单量、客单价、DAU(含同比环比)
2. 趋势图:GMV和订单量的日趋势
3. 漏斗图:从访问到下单的转化漏斗
4. 排行榜:品类TOP10、渠道TOP10
5. 异常告警:关键指标偏离阈值时高亮显示
面试官追问了看板的更新频率——我说核心指标实时更新,详细数据T+1更新。面试官认为这个设计合理。
业务Case:如何评估促销活动效果
面试官出了一个场景题:刚结束了一个满减促销活动,怎么评估效果?我的分析框架:
1. 直接效果:活动期间的GMV、订单量、参与用户数、客单价变化
2. ROI分析:活动成本(补贴金额)vs 带来的增量GMV,计算ROI
3. 用户分群:新客vs老客的参与度和转化率差异
4. 溢出效应:活动是否拉动了非活动品类的销售
5. 负面影响:活动后是否有销量回落(提前消费效应)、退货率是否上升
面试官对这个回答很满意,说考虑得很全面。
HR面(约30分钟)
HR面比较常规,主要问了以下几个问题:
1. 职业规划:短期想深耕数据分析,长期希望往数据产品或数据管理方向发展
2. 为什么选京东:电商数据场景丰富,数据体量大,能学到更多
3. 期望薪资:我报了一个合理的涨幅,HR没有当场回复
4. 目前还有其他offer吗:如实回答
结果
HR面后大概1周,收到了offer。薪资涨幅约25%,虽然不是特别高,但京东的平台和数据场景对我来说更有价值。而且团队规模比现在大很多,能接触到更专业的数据工程和算法团队,对职业发展帮助很大。
面试真题汇总
一面真题:
1. 窗口函数rank、dense_rank、row_number的区别
2. SQL实战:求连续3天登录的用户
3. pandas中merge和join的区别
4. 数据清洗:重复记录和异常值的处理
5. 业务题:GMV下降20%怎么分析
二面真题:
1. AB实验设计:新推荐算法的测试方案
2. 样本量计算与统计显著性判断
3. 核心指标与护栏指标的权衡
4. 指标体系设计:电商APP的OSM模型
5. 数据看板设计:日常经营看板内容
6. 业务Case:促销活动效果评估
HR面:
1. 职业规划
2. 为什么选京东
3. 期望薪资
心得体会与建议
1. SQL是基本功,必须熟练。数据分析面试几乎一定会考SQL,而且不是简单的查询,窗口函数、多表关联、子查询这些是标配。建议把LeetCode上的SQL题刷一遍,重点练窗口函数和日期相关的题目。
2. 业务思维比技术能力更重要。面试中业务题的占比很大,面试官更看重你分析问题的框架和逻辑,而不是具体的技术实现。建议平时多关注业务,理解数据背后的业务含义,不要只做一个"取数工具人"。
3. AB测试是高频考点。几乎每个数据分析面试都会考AB测试,从实验设计到结果分析都要掌握。建议系统学习一下AB测试的统计原理,包括假设检验、样本量计算、多重比较这些。
4. 回答业务题要有框架。不要想到什么说什么,先给出分析框架,再逐步展开。比如GMV下降的问题,先确认数据准确性,再按维度拆解,再定位原因,最后给建议。有框架的回答会让面试官觉得你思路清晰。
5. Python不用太深入,但pandas必须熟。数据分析面试对Python的要求不算特别高,主要是pandas的数据处理能力。merge、groupby、pivot_table、apply这些操作要能熟练使用。
常见问题FAQ
Q:数据分析面试一定要会Python吗?
A:看公司。有些公司只要求SQL+Excel,但大厂基本都要求Python。建议至少掌握pandas和numpy的基本操作,能做数据清洗和简单分析。
Q:SQL要学到什么程度?
A:窗口函数是必须掌握的,多表关联、子查询、CTE这些也是标配。建议能独立完成LeetCode中等难度的SQL题。面试中的SQL题一般不会特别难,但要求写得快、写得对。
Q:没有电商经验能过京东的数据分析面试吗?
A:可以。面试官更看重你的分析思维和学习能力,而不是行业经验。当然,如果你能提前了解一些电商的核心指标(GMV、客单价、转化率、复购率等),会更有优势。
Q:AB测试怎么准备?
A:建议从三个方面准备:1)统计基础——假设检验、p值、置信区间、统计功效;2)实验设计——分流方式、样本量计算、实验周期;3)结果分析——显著性判断、多重比较、Simpson悖论。
Q:数据分析面试会考算法题吗?
A:一般不会考LeetCode那种算法题,但SQL题和Python数据处理题是必考的。有些公司可能会考简单的统计推断题,比如t检验、卡方检验的应用。