ARTICLE DETAIL

资讯详情

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

数据分析笔试高频题型全解析:SQL、统计、AB实验与业务分析攻略

数据分析笔试高频题型全解析:SQL、统计、AB实验与业务分析攻略 1. 数据分析岗位笔试题到底在考什么从我做数据分析岗位面试官的经历来看笔试这个环节的定位很明确——它不是要考倒你而是要在短时间内筛掉一批简历好看但底子不牢的人。换句话说笔试的题目设计通常不会刻意刁钻反而会贴近日常工作场景考察的是你是否具备“拿到数据就能动手分析”的基本功。很多第一次投数据分析岗位的朋友容易把笔试想复杂花大量时间去刷算法题、背模型公式结果反而忽略了几个最高频的基础板块。我自己梳理过近两年国内主流互联网公司、快消公司和金融科技公司的数据分析笔试题发现题型高度集中在几类SQL取数题、统计概率题、业务分析题、Python数据处理题以及Excel基础操作题。有些公司还会加一道开放性的“指标异动分析”或“AB实验设计”题考察你的业务敏感度。这背后其实反映出一个事实数据分析岗位的日常工作大量时间花在“取数—清洗—理解业务—得出结论—推动决策”这条链路上。笔试题目自然也会围绕这条链路来出。比如SQL题本质上是看你能不能高效、准确地从数据库里“取对数据”业务分析题看你能不能把数字翻译成业务语言统计题看你在做AB实验、估计样本量时有没有基本sense。还有一点值得注意不同行业的数据分析笔试题侧重点差异很大。电商和本地生活类公司业务分析题占比高经常给一张订单表、用户表让你分析某月GMV下降的原因游戏公司会问你留存的判断和付费用户分层传统金融公司则更看重统计知识和风控场景建模。你在准备笔试前一定要先看清目标公司的业务属性再决定复习重心这个比盲目刷一百道题更高效。这篇文章我把数据分析笔试中最常见、也最容易被忽视的题型全部拆开来讲每道题都会给出解题思路、参考答案框架和实际踩坑提醒。内容比较长适合先收藏再对照着自己练。2. 高频SQL笔试题目拆解与避坑指南2.1 经典窗口函数求每个部门工资排名前N的员工SQL题几乎占据数据分析笔试题的半壁江山而窗口函数又是SQL题里的绝对高频考点。以“求每个部门工资排名前3的员工”为例很多公司会直接将其作为第一道大题。典型的表结构是员工表包含员工ID、姓名、部门ID、工资、入职时间等字段题目要求输出每个部门工资排名前三的员工信息。标准解法是用ROW_NUMBER()注意区分它和RANK()、DENSE_RANK()的区别考试中经常在这个细节上埋坑SELECT 部门ID, 员工ID, 姓名, 工资 FROM ( SELECT 部门ID, 员工ID, 姓名, 工资, ROW_NUMBER() OVER (PARTITION BY 部门ID ORDER BY 工资 DESC) AS rn FROM 员工表 ) t WHERE rn 3;如果用RANK()当两个员工工资并列第一时会跳过第二名直接到第三名输出的就不是“前3个员工”而是“前3个排名”。题目如果问“每个部门工资排名前3的部门员工”用ROW_NUMBER()比较稳妥如果问“每个部门工资最高的三个档次”那就应该用DENSE_RANK()。这是笔试中非常常见的失分点千万不能想当然。实际操作中还要注意表名和字段名的书写规范笔试环境里表名一般是英文先理清字段再动手写避免审题不清。另外PARTITION BY后面的字段要和“每个部门”保持一致这是默认的考点哪怕题目简单也不能大意。2.2 留存率计算从用户登录表计算次日、3日、7日留存留存率计算是数据分析笔试中极具业务代表性的SQL题也是日常工作中最常用的指标之一。给你一张用户登录表字段包括用户ID、登录日期要求计算某个新用户批次在次日、3日、7日的留存率。这题的难点不在SQL语法而在于你如何理解“留存”。很多人一上来就写COUNT(DISTINCT 用户ID)但这样算出来的是“活跃用户数”不是“留存率”。留存的准确定义是某一天新增的用户中在指定日期后仍然有活跃行为的比例。所以要先找出新增用户日期通常是用户首次登录日期再去匹配后续行为。一个比较清晰的思路是先构造“首日登录表”再关联“所有登录记录”用DATEDIFF计算日期差WITH first_login AS ( SELECT 用户ID, MIN(登录日期) AS 首日日期 FROM 登录表 GROUP BY 用户ID ), active AS ( SELECT a.用户ID, a.首日日期, COUNT(DISTINCT CASE WHEN b.登录日期 DATE_ADD(a.首日日期, INTERVAL 1 DAY) THEN b.用户ID END) AS 次日活跃, COUNT(DISTINCT CASE WHEN b.登录日期 DATE_ADD(a.首日日期, INTERVAL 3 DAY) THEN b.用户ID END) AS 3日活跃, COUNT(DISTINCT CASE WHEN b.登录日期 DATE_ADD(a.首日日期, INTERVAL 7 DAY) THEN b.用户ID END) AS 7日活跃 FROM first_login a LEFT JOIN 登录表 b ON a.用户ID b.用户ID GROUP BY a.用户ID, a.首日日期 ) SELECT 首日日期, COUNT(*) AS 新增用户数, SUM(次日活跃) / COUNT(*) AS 次日留存率, SUM(3日活跃) / COUNT(*) AS 3日留存率, SUM(7日活跃) / COUNT(*) AS 7日留存率 FROM active GROUP BY 首日日期;这里有一个实际业务中的坑直接用用户首次登录日期作为“新增用户日期”未必准确因为老用户卸载重装或者换设备登录也会生成新的首次登录记录。在企业内部数据仓库中“新增用户”通常以设备激活时间为准而不是登录行为。笔试中题目如果没给激活表一般可以按首次登录近似处理但要记得在答案中注明假设能让面试官感觉你有业务思考。2.3 连续登录问题找出连续登录N天的用户连续登录问题在笔试中出现频率极高属于SQL题里的“中等难度天花板”。常见问法有三种找出连续登录3天及以上的用户、找出每个用户最长连续登录天数、计算连续登录天数分布。其中“最长连续登录天数”信息量最大也最常被用作压轴题。解题的核心思路是把“连续”转化为“分组”。先用ROW_NUMBER()对每个用户的登录日期排序再用日期减去序号得到一个“伪日期”如果用户是连续登录的那么日期减序号得到的结果相同WITH daily AS ( SELECT 用户ID, 登录日期, ROW_NUMBER() OVER (PARTITION BY 用户ID ORDER BY 登录日期) AS rn FROM 登录表 ), diff AS ( SELECT 用户ID, 登录日期, DATE_SUB(登录日期, INTERVAL rn DAY) AS grp FROM daily ) SELECT 用户ID, COUNT(*) AS 连续天数 FROM diff GROUP BY 用户ID, grp;这个写法里的关键点是用“日期减序号”来构造分组标识。我见过不少人在这一步卡住就是因为没有理解“连续日期”和“等差序列”之间的等价关系。另外注意要先去重再做排序因为同一用户同一天可能有多次登录记录如果不先去重序号会产生偏移导致整个分组逻辑出错。笔试中遇到这类题建议先在草稿纸上画两行数据——一行是登录日期一行是序号手动算一下日期减序号的结果再代入SQL。先手算验证逻辑再写代码能大幅降低出错概率。2.4 SQL笔试的高频陷阱总结SQL题看似简单但每年都有大量候选人折在低级错误上。我把笔试实际批改中发现的高频陷阱整理成了一张表方便大家对照自查陷阱类型错误示范正确思路JOIN字段没加去重一对多关联后COUNT明显膨胀先确认关联字段是否唯一必要时用DISTINCT或子查询去重分组字段不完整GROUP BY只写了部分字段SELECT中的非聚合字段必须全部出现在GROUP BY中日期边界判断错误用“ 当前日期”漏掉当天数据明确日期区间开闭日常建议用“”和“”组合NULL值被过滤用NOT IN子查询时子查询结果含NULL用NOT EXISTS替代NOT IN或先过滤NULL窗口函数范围理解错以为PARTITION BY能代替GROUP BYPARTITION BY不聚合行数而是对每行计算窗口值去重逻辑不严谨对用户ID直接COUNT而不是COUNT(DISTINCT)牢记“一个人多次操作 vs 多个人各操作一次”的区别面试中还有一类“故意少给条件”的题比如只给了一张销售记录表问“当月复购率”但表里有大量无效订单、退款订单、测试订单。这种情况下如果你直接取数结果必然失真。笔试不是单纯考SQL语法而是在考你写SQL时的数仓意识。看到“复购率”“留存率”“转化率”这类的词脑海里要自动弹出“是否要过滤异常数据”的警报。3. 统计概率题和AB实验设计题的常规解法3.1 概率题从贝叶斯公式到置信区间统计概率题在数据分析笔试中占15%到25%的权重金融类公司会更高。经典的概率题包括抛硬币问题、抽球问题、三门问题、贝叶斯推断、正态分布的性质、中心极限定理的应用等。其中贝叶斯公式是最高频的考点因为它直接对应了数据分析里“根据观测数据更新先验认知”的思维。举个例子某公司有两种用户高活跃用户占比30%低活跃用户占比70%。高活跃用户次日回访概率为80%低活跃用户次日回访概率为20%。现在观察到某个用户在第二天回访了问这个用户是高活跃用户的概率是多少。这就是典型的贝叶斯题答案是(0.30.8)/(0.30.80.7*0.2)0.63。这道题背后考的是“后验概率”与“先验概率”的区别。很多人只记得贝叶斯公式的分子却忘了分母要加“所有可能性下的总概率”。笔试中遇到这类题先别急着代入公式把事件A、事件B、已知条件都列清楚再写全概率公式即使最后算错过程分也能拿一部分。置信区间和中心极限定理也常考。比如给出“某功能点击率是5%样本量为400”求95%置信区间这时要会用正态近似公式p±1.96*sqrt(p(1-p)/n)算出约3.2%到6.8%。很多候选人会算置信区间但说不清“95%置信区间”的真正含义面试官追问一句就露馅。95%置信区间的含义是如果重复抽样100次构造100个区间其中约95个区间会包含总体真实值。它不是“真实值有95%概率落在区间内”这个区别在笔试简答题里经常被拿来设坑。3.2 AB实验设计题不只是算样本量AB实验设计题在近几年的数据分析笔试中频繁出现因为它是数据分析驱动业务决策最核心的手段之一。常见问法包括某产品改版后CTR是否显著提升请设计一个AB实验方案现有样本量为10万实验需要跑多久如何判断实验是否有效用什么指标、什么检验方法。这类题最容易丢分的地方在于答得太“技术”而忽略了业务前提。一个完整的AB实验设计方案至少应该包含以下要素明确实验假设比如“新版按钮颜色能提高点击率5%”确定实验单位是用户ID还是设备ID能否保证不串组选择核心指标和护栏指标核心指标是点击率护栏指标是页面崩溃率、投诉率计算最小样本量需要给定显著性水平一般0.05、统计功效一般0.8、最小可检测提升幅度MDE确定实验时长至少包含一个完整的业务周期并考虑新奇效应确定显著性检验方法二项分布用卡方检验或Z检验均值类指标用t检验考虑干扰因素是否存在互斥实验、是否存在学习效应、是否要考虑网络效应样本量计算是这类题的硬核环节。假设当前点击率是10%希望检测出5%的相对提升即点击率从10%提升到10.5%显著性水平0.05功效80%可以用两样本比例检验的近似公式估算每组的样本量。计算公式大致为其中p1和p2是两组预期转化率约等于每组需要34000个用户。实际笔试中如果没要求精算列出公式和参数就足以展示专业度。我批改过很多AB实验题答案发现候选人最常忽略的是“新奇效应”。一个新功能上线时用户因为新鲜感产生的行为变化会高估实验效果等新鲜感过去效果打回原形。因此实验时长必须覆盖一个足够长的周期甚至需要做“首日用户vs长期用户”的拆分分析。在答案里提到这一点能明显体现出你的实战经验。4. Python与Excel数据处理题笔试里的实操分项4.1 Python题从Pandas操作到数据分析与可视化Python题在数据分析笔试中的占比逐年提升尤其是以Pandas为载体的数据处理题。常见题型包括读取CSV文件后做数据清洗、根据条件筛选数据、分组统计、透视表操作、合并两个表、处理缺失值、用Matplotlib或Seaborn画图。一道典型的Python笔试题是“给定订单表和商品表计算每个类目的销售额Top3商品”。解题思路是先用merge关联两张表再用groupby聚合最后用rank或sort_values筛选TopNimport pandas as pd orders pd.read_csv(orders.csv) products pd.read_csv(products.csv) df orders.merge(products, onproduct_id, howleft) df[sales] df[price] * df[quantity] top3 ( df.groupby([category, product_name])[sales] .sum() .reset_index() .sort_values([category, sales], ascending[True, False]) .groupby(category) .head(3) )这道题里最容易出错的是最后的“取每个类目Top3”很多人直接用sort_values取全部Top3把类目之间的比较混在一起。正确做法是groupby之后在组内取head(3)这个逻辑其实和SQL里的窗口函数是同一个意思。Python题还经常考数据清洗。比如一份用户行为日志里age字段有负数、有空值、有超过120的异常值问你如何清洗。合理的处理方式是先定义“异常值”再根据业务规则处理负数可能是埋点上报错误可以直接置空超过120可能是测试数据需要和业务方确认不能简单地用均值填充。笔试中不要只写代码还要在注释里写明你做的每一个清洗规则背后的原因让面试官看到你有数据治理的意识。数据分析与可视化也是Python题常客比如要求你用Pandas统计某个月份的日活跃用户数并用Matplotlib画出趋势图。这种题考察的不只是语法还有你对图表的敏感度——坐标轴标题、数据标签、图例、颜色搭配都是得分点。我的经验是笔试时如果时间紧张优先保证统计结果正确画图做到基本规范即可不需要追求过度精美的视觉效果。4.2 Excel题最容易被忽视的送分题虽然现在很多公司笔试题都线上化了但Excel数据分析能力依然是部分公司尤其是快消、零售和传统行业数据分析岗的必考项。Excel的考察点集中在VLOOKUP、数据透视表、条件格式、基础图表制作偶尔会考INDEXMATCH组合。VLOOKUP几乎是Excel笔试题的万年主角。常见坑位是查找值必须在查找区域的第一列否则返回错误第四个参数如果省略或填TRUE是近似匹配而不是精确匹配被查找表中有重复值时VLOOKUP只返回第一条匹配结果。这些细节在平时用Excel时不太起眼但在笔试里很容易成为失分点。数据透视表的考察一般是给你一张销售明细表要求按月份统计每个区域的销售额和订单量并生成一个条形图。这种题考察的不是你会不会插入透视表而是你能否快速从原始数据中提炼出“维度”和“指标”的分类意识。维度是分类字段如区域、月份、品类指标是数值字段如销售额、订单量做透视表前先分清楚这两类操作就顺了。有种事半功倍的备考方式是用Excel做一轮“自问自答”练习。拿一份公开的电商订单数据网上很多Kaggle和阿里天池的开放数据集自己设计十个问题比如“哪个品类的退货率最高”“华东区GMV最高的门店是哪家”然后用Excel透视表、函数、图表分别操作一遍。这个过程能同时练到Excel三板斧和数据分析的思维比死记函数语法有效得多。4.3 数据获取和指标体系建设的基本功让我额外提醒一句数据分析笔试中有些题目会在最后附带一道“设计指标体系”或“为某个业务搭建数据监控看板”的题。这类题表面上不是硬技能但非常考验你的业务理解力因为它要求你在“数据与业务之间搭桥”。常见的指标体系设计思路是OSM模型Objective Strategy Measurement先明确业务目标再拆解实现目标的策略最后为每个策略设定可衡量的指标。比如一个内容社区的业务目标是提升用户活跃度策略包括增加内容供给、提升分发效率、促进社交互动那么对应指标可以是日新增内容数、人均浏览时长、评论率、关注转化率等。再进阶一点指标体系还要区分结果指标和过程指标。结果指标反映业务最终成果如GMV、DAU、付费用户数过程指标反映达成结果的关键路径如点击率、转化率、下单率。只看结果指标会导致“只能晚发现风险不能提前预警”只看过程指标又会抓不住重点。笔试中回答这类题时把结果指标和过程指标分开列再说明它们之间的因果关系往往能拿到比预期更高的分。以电商业务数据分析为例一个完整的指标体系至少包含流量层访客数、页面浏览量、来源渠道分布、转化层加购率、下单率、支付转化率、交易层订单量、客单价、GMV、售后与复购层退款率、复购率、30日留存率。题目如果给了一个具体的业务场景比如“某电商平台大促后GMV环比下降20%请分析原因”你就需要按这个框架逐层拆解而不是一上来就说“是因为流量少了”。没有体系化分析框架的答案在面试官眼里往往等于“没有分析能力”。5. 业务分析开放题这类题没有标准答案但有高分手感5.1 常见题型指标异动分析、留存分析、用户分层数据分析笔试的最后一道大题通常是开放式业务分析题。这类题没有唯一标准答案但绝不能空泛。常见三类题型中“指标异动分析”出现频率尤其高比如“某电商平台某一天的支付转化率突然下降了1个百分点请分析可能原因和排查思路”。回答这类题我建议用**“由内到外由表及里”**的框架。先看数据本身是否可信是否是数据埋点异常、是否遇到了节假日、是否有大促前后的自然回落。如果数据可信再拆维度按渠道看是哪个渠道跌了按新老用户看是新客还是老客影响更大按品类看是头部品类还是长尾品类下跌。再往下探一层结合外部环境是否竞品有大型促销、是否出现了负面舆情。最后落到业务动作近期是否调整了推荐策略、是否改版了支付流程。举个例子某次我们发现转化率下降但流量没有明显波动初步判断不是渠道问题。继续拆到品类层发现是某个头部品类的供给中断导致库存不足用户点击了商品却无法购买从而拉低了整体转化率。这个结论是典型的数据拆解路径从整体到局部从数字本身到业务动作。笔试中如果能写出这样的分析链条哪怕结论不完美也会让面试官觉得你有分析框架。“留存分析”类开题题也常见比如“某产品的30日留存率持续下降你如何分析”。这时候不要呆板地分析留存数字本身要把留存拆成“新增用户质量”和“老用户流失”两部分。新增质量变化可能是因为买量渠道结构变了、素材变了、投放策略调整了老用户流失则要结合版本迭代、竞品变化、需求周期等因素。拆开之后分别找证据能大幅降低分析难度。用户分层类题目同样需要框架。经典分层方法是RFM模型即按Recency最近一次消费时间、Frequency消费频率、Monetary消费金额把用户分成重要价值用户、重要发展用户、重要保持用户等不同群体。笔试中如果让你“给某产品的付费用户做分群”提到RFM并解释如何应用就已经比大多数候选人高出一个段位了。5.2 如何让你的笔试答案给面试官留下印象开放题的回答质量往往决定了笔试能否晋级。很多人误以为开放题只要写得多就行其实面试官看的是思路结构不是字数堆砌。我建议所有业务分析题都按照“明确业务目标—拆解核心指标—定位问题环节—提出验证方案—给出建议动作”五步回答每一步写两三行就够不要长篇大论。还要注意一个细节答案里必须体现“假设驱动”的思维。不要只罗列可能的原因要写“提出假设—设计验证方法”。比如你怀疑转化率下降是支付链路改版导致的就要写“可以对比改版前后、支付成功率的差异并分端iOS/Android看是否有差异”。这种“提出假设并且能落地验证”的表达方式是数据分析师和普通会用Excel的人之间的本质差别。最后给自己的答案加一些“判断依据”比如“从业务经验看这个品类在夏季本身就是淡季所以同比下跌比环比下跌更能说明问题”。这类业务常识不需要多但能让回答显得接地气。面试官看到你对业务有自己的理解而不是硬套模型印象分会高很多。6. 笔试题之外如何让核心竞争力在笔试环节就凸显出来6.1 刷题之外的三个准备重点笔试前如果只剩三天我不建议再大量刷题而是把时间花在三件事上一是把常用SQL窗口函数和Pandas分组聚合、透视表操作的语法过一遍确保不卡壳二是准备一个自己最熟悉的业务分析案例比如“某次你发现活动点击率下降20%怎么排查的”结构化地写出来三是熟悉目标公司的核心业务指标。如果是电商公司GMV、客单价、转化率、复购率必须张口就来如果是内容平台DAU、人均时长、留存、互动率必须理解透彻。还有一个很多人忽略的点是笔试环境的模拟。有些公司的笔试系统自带SQL运行环境但不支持某些函数有些Python题考查的是Notebook环境下的数据操作还有些公司会限制交卷时间一道SQL题只给5分钟。提前登录牛客网、赛码网、公司官方的笔试练习平台做几套模拟题熟悉操作界面和交卷流程能避免正式笔试时浪费时间在环境适应上。另外笔试答题时注意“时间分配策略”。我见过很多候选人在一道SQL窗口函数题上死磕了40分钟导致后面Python题和开放题草草收尾。正确的做法是先把所有题看一遍优先做自己最有把握的题把该拿的分拿到再回头啃难题。数据分析笔试的通过线通常不是90分而是60到70分保证基础题全对比冲难题的边际收益大得多。6.2 笔试挂掉最常见的三个原因与应对从面试官视角看笔试挂掉的候选人经常踩三个坑第一个坑是“审题不清”。题目问的是“求连续3天登录的用户ID”有人写成了“求连续登录3次以上的用户ID”题目问“计算每个季度的复购率”有人直接算成了“季度内所有订单的重复购买占比”。问题的根源是审题时没有把“口径”框清楚。我的建议是读题时把题目里的口径关键词圈出来比如“每个部门”“近30天”“去重”“按XX分层的TOP3”写完答案后再对照一遍关键词检查。第二个坑是“只给代码不给解释”。笔试不只是机器判分很多公司笔试后会有面试官重新review试卷。SQL题哪怕写得对如果没有注释或简要的文字说明面试官很难判断你是真的理解还是背的模板。尤其是Python题和开放题在关键步骤旁写上思路瞬间就能和其他候选人拉开差距。第三个坑是“没有时间检查”。交卷前留出5到10分钟重点检查三件事GROUP BY和SELECT字段是否匹配、日期字段是否统一格式、输出结果是否是题目要求的格式列名、排序规则、是否去重。这些低级错误每年都有大量候选人栽跟头说白了不是不会而是没有形成检查习惯。把“答案正确但格式不符合要求”当成一个常态风险来对待笔试通过率会提高不少。6.3 拿到笔试通过后的准备建议如果笔试顺利通过下一步大概率是面试。面试中会深挖笔试答案尤其是开放题和SQL题的变体。我会建议你把笔试时写的每道题都存档在面试前重新看一遍想一想“如果面试官问我为什么用RANK而不是DENSE_RANK我能不能解释清楚”。笔试不是终点而是面试的预演。你在笔试中展示出来的技术选择面试官会在后续环节追问提前准备好“为什么这么选”的解释面试时会从容很多。这里分享我自己的一个复盘方法每次笔试结束后不管过没过都花半小时把所有题目重新做一遍并把错题归类整理到文档中。比如这周错的都是窗口函数边界问题下周就专门刷10道窗口函数题这周在开放题上只写了原因没写验证方案下周就针对性地练“假设—验证”结构。坚持两三轮你就能明显感觉到自己在数据分析笔试上的题感提升了一个台阶。7. 笔试真题实战演练两道经典题的完整作答示范7.1 实战题一统计某个月的日活跃用户数与活跃率题目背景给定一张用户活跃时间表user_activity字段包括用户IDuid、活跃日期active_date、活跃时长duration。要求计算某个月份如2026年3月的每日活跃用户数以及该月每日活跃率当日活跃用户数/当月总活跃用户数。这道题看起来很简单但实际作答中至少有三个细节值得注意一是“日活跃用户数”要做去重因为一个用户一天可能有多条活跃记录二是“当月总活跃用户数”是整个月去重后的活跃用户总数不是某一天的活跃数三是如果某天没有活跃记录要不要显示为0这取决于题目要求。参考答案WITH daily_active AS ( SELECT active_date, COUNT(DISTINCT uid) AS dau FROM user_activity WHERE DATE_FORMAT(active_date, %Y-%m) 2026-03 GROUP BY active_date ), month_active AS ( SELECT COUNT(DISTINCT uid) AS mau FROM user_activity WHERE DATE_FORMAT(active_date, %Y-%m) 2026-03 ) SELECT d.active_date, d.dau, d.dau / m.mau AS active_rate FROM daily_active d CROSS JOIN month_active m ORDER BY d.active_date;这道题的隐藏考点是用CROSS JOIN把月度总活跃用户数放到每一天的行上很多候选人会卡在“如何同时拿到每日活跃和月度活跃”这一步。更稳妥的做法是用窗口函数SUM(COUNT(DISTINCT uid)) OVER ()但如果笔试环境不支持窗口函数内嵌COUNT(DISTINCT)CROSS JOIN是更通用的写法。实际批改时只要结果对、逻辑清晰两种写法都算对。7.2 实战题二某电商平台大促后GMV下滑分析题目背景某电商平台在618大促当周GMV创下历史新高但大促结束后的第二周GMV环比下滑了35%远超往年同期的下滑幅度。请分析可能的原因并写出你的排查思路和验证方法。这道题的答题要点在于不要停留在“促销结束后必然回落”这种常识层面而是要把35%的“超预期下滑”拆开来看。我列一个高分的作答框架第一步明确口径和异常排查。先确认GMV的计算口径是否发生变化是否存在数据延迟、报表口径调整、测试数据混入等情况。再对比去年同期和上一轮大促的回落幅度判断35%是否真的异常。第二步按流量渠道拆分。对比大促前后各渠道访客数、转化率变化看是自然流量下降、付费投放减少还是搜索流量波动。可以用渠道AA对比分辨大盘下滑和渠道结构变化哪个影响更大。第三步按用户类型拆分。大促期间主要通过低价吸引新用户这部分用户本身留存和复购率较低所以大促后GMV下滑可能集中在新客群体。验证方式是分别统计新客和老客在前后两周的下单人数、客单价、复购率变化。第四步按品类拆分。大促期间囤货型品类如纸巾、粮油销售集中爆发大促后会明显回落体验型品类如服装受促销影响相对较小。验证方式是看头部品类的销量环比变化以及SKU动销率是否下降。第五步考虑外部因素和业务动作。是否有竞品在同期做了大促、是否有平台规则调整、是否调整了搜索排序或首页推荐资源位。这些因素无法用数据直接证明但可以通过舆情监控、竞品动作收集和内部改动记录来辅助判断。最后给出建议关注大促后一周和两周的复购数据不要只看单周GMV建立大促后回落幅度的预警区间把“正常回落”和“异常下滑”区分开。这个答案的好处是每个观点都能对应到数据验证方案而不是空谈原因符合业务分析岗的考察重点。8. 我的私房经验数据分析笔试复习路线图最后分享一套我结合自己和周围同事经验总结的复习路线图分为三个周期适合在校生和准备转行数据分析的朋友参考。第一周期约7天打基础主攻SQL窗口函数和统计概率。SQL刷完窗口函数各个变体排名、累加、移动平均、分组TopN统计刷完描述性统计、概率基础、常见分布、置信区间、假设检验、AB实验的基本概念。这两个板块是笔试中确定性最强、最容易短期提分的部分。第二周期约7天强化业务题和Python数据处理。每天精做一道业务分析开放题严格按照“目标—指标拆解—定位—验证—建议”的框架输出答案写完对照优秀答案找差距。Python每天做一组数据处理练习重点练Pandas的merge、groupby、pivot_table、apply、map等高频操作再上手画几张图。第三周期约3天模拟考试。找目标公司的历年真题或类似岗位的笔试题设定和正式笔试一样的时间限制完整做两到三套。做完后不只看对错而是复盘时间分配、审题失误、格式问题和知识盲区把易错点整理成清单考试前5分钟过一遍。我在实际改笔试时最深的体会是大多数通过笔试的候选人不是最聪明的而是准备得最扎实的。数据分析岗位笔试考的都是基本功不需要天赋异禀只要把常见的题型和思路练熟通过率就能超过大多数人。这篇文章的每个板块都可以当作单独的复习素材建议收藏后分几天仔细阅读边读边动手写代码、做案例效果远好于一口气读完。祝大家笔试顺利早日拿到心仪的数据分析offer。
返回列表