news 2026/9/6 14:34:06

小满秋招数据分析岗笔试复盘:SQL、Python与业务案例全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小满秋招数据分析岗笔试复盘:SQL、Python与业务案例全解析

2023年秋招,我报了一家金融背景的科技公司数据分析岗,投完简历没几天就收到了小满秋招第一批笔试的链接。说实话,很多人对这个岗位的笔试预期就是“考SQL、考Python、考统计学”,但这批卷子做下来,我发现它更想考察的是你面对一个不清晰问题时的拆解能力。笔试一共分了几个板块,覆盖统计学、SQL、Python、Excel和业务案例分析,时间看着充裕,真要每一道都做得漂亮并不轻松。这篇文章就把我亲身经历的这一批笔试复盘一遍,讲讲题型分布、典型题目、答题思路,以及我踩过的坑。准备秋招数据分析岗的同学,或者想转行做数据分析的人,可以直接拿这份复盘当参考。

1. 这一批笔试到底在考什么

1.1 先搞明白招聘方想要什么样的人

很多同学拿到笔试题的第一反应是“我要把语法背熟,把模型公式都默写出来”。但你要是真的做过几场数据分析岗的笔试,就会发现题目本身并不是为了难倒你,而是为了筛选出符合岗位画像的人。从小满这批笔试的题目反推,这个岗位要的不是取数工具人,而是能独立拉数、能听懂业务需求、能在数据异常时给出排查方向的初级数据分析师。

金融科技公司的数据分析岗有一个特点:业务侧非常关注风险、转化、留存和成本。所以笔试不会只考“会不会用某个函数”,而是会给一个偏业务的场景,比如“某个渠道的注册转化率连续下降,你怎么分析”。这时候光会写SQL不够,你得有业务常识,知道漏斗的每一步埋点在哪里,知道渠道差异和版本迭代都可能影响转化,知道用什么指标去衡量波动的显著性。

理解了这层逻辑,你再看笔试题,就会明白为什么有些题看着简单,但给分点那么多。比如一道SQL题,表面上是查某个时间范围内的订单量,但实际暗含去重、空值处理、日期边界条件、分组维度归类这些细节。每一步都有分,最后拼的是你平时写数仓查询时有没有养成好习惯。

1.2 题型构成和大致分值分布

我回忆了一下,小满秋招第一批笔试的在线测评大概持续两个半小时,题量不算特别大,但每道题都需要动笔推演。整体可以分成四个板块。

板块考察内容大致占比我的体感难度
综合行测与逻辑资料分析、图形推理、文字理解25%中等,关键是速度
统计学与业务选择题假设检验、置信区间、辛普森悖论、业务指标辨析25%中等偏上
SQL与Python编程题数据查询、数据清洗、留存计算、简单统计建模30%较难,容易在细节翻车
业务案例分析题指标异动排查、AB实验设计、用户分层策略20%主观题,但拉分最明显

综合行测那一块和公务员考试的资料分析很像,但更偏向图表和数据理解。统计学与业务选择题是最容易突击的,因为考点固定,翻来覆去就是那几十个概念。编程题是重头戏,SQL必考,Python大概率考pandas和scipy。案例分析题看着最开放,其实也有套路,后面我会专门展开。

1.3 前期知识准备,我实际用到的工具清单

如果你还有一两周才笔试,建议按这个清单去查漏补缺。首先是Excel,这是保底工具,哪怕你SQL不熟练,用数据透视表也能处理不少问题。笔试环境里如果只给一个csv文件,Excel反而是最稳的。其次是SQL,必考窗口函数、多表join、日期函数、留存计算。再就是Python,重点掌握pandas的数据清洗、groupby聚合、merge关联,以及scipy的统计检验。

我顺手把笔试前用到的一些学习资料列在下面,都是市面上好找的:Python数据分析与可视化的教程、Excel数据分析实战类的书、SQL面试题合集、商业数据分析的案例库。如果时间紧,不用全部啃完,优先刷SQL和pandas的基础题。数学建模与数据分析这一块可以放到后期,笔试里直接考建模的不多,但如果能在案例分析里主动提出用逻辑回归或聚类去做用户分层,会很加分。

2. 核心题型逐项拆解与避坑思路

2.1 统计学与业务选择题:考点集中,拼的是概念清晰

这批笔试题里,统计学选择题大概有十道左右,考得很集中,都是基础概念。比如p值的含义,置信区间和样本量的关系,中心极限定理的适用条件,第一类错误和第二类错误的区别,还有相关关系和因果关系的辨析。这些概念在面试里也常考,笔试里往往换成一个具体的业务场景让你判断。

举个例子,有一道题大概是说某活动页面的点击率从5%提升到了6%,运营想宣布活动有效,问你怎么看。选项里有“需要做显著性检验再下结论”“6%一定大于5%,所以有效”“点击率提升但样本量未知,无法判断”“应该看用户数而非点击率”。正确的思路是先看样本量和波动范围,再决定是否做检验。这道题考的不是计算,而是数据分析思维里最基本的一条:不能只看数值差异,要看差异是否显著。

业务选择题还会考一些常用模型的理解,比如RFM模型怎么划分用户价值,漏斗模型里哪一步流失率最高怎么定位,购物篮分析里的支持度和置信度怎么算。如果之前在商业数据分析项目里实际用过这些概念,答起来会轻松很多。如果没接触过,临时背概念也来得及,但一定要把定义和业务含义结合起来理解,不要死记公式。

2.2 SQL实操题:窗口函数是分水岭

SQL题是数据分析岗笔试的重头戏,小满这批也不例外。基础题无非是select、join、where、group by、order by,但只要涉及留存率、连续活跃、排名分组这类场景,就必须用到窗口函数。窗口函数和普通group by最大的区别是:group by会压缩行数,窗口函数不压缩行,可以在保留明细的同时计算聚合值。这个特性在做“每个用户在首次下单后的第二个月是否复购”这类问题时就特别好用。

我复习时最大的感受是,窗口函数不是背几个语法就行,关键是理解partition by和order by的执行顺序。很多人写rank()或row_number()时经常忘记在partition里指定分组维度,结果算出来的排名是全局排名而不是组内排名,这类错误在笔试里特别容易扣分。另外,sum() over(partition by ... order by ...)可以实现累计求和,这在算某时间点的累计金额时很常用。

窗口函数用多了之后,你会发现很多常规思路里的“子查询加临时表”都可以被更简洁的窗口函数替代。面试官看你的SQL写法,能直接判断你平时是只写业务报表,还是真的研究过复杂查询逻辑。想要突击这部分,可以去找历年数据分析面试题里的SQL部分,把每个题用窗口函数写一遍,再用普通写法写一遍,对比一下两种思路的差异。

2.3 Python编程题:pandas清洗和统计检验经常一起出现

Python题在这批笔试里不算难,但很考察日常使用的熟练程度。有一道题给了一个含有缺失值和重复值的订单表,要求用pandas做数据清洗,然后统计每个渠道的平均客单价。这种题如果平时总用R或Excel处理数据,突然切换到Python环境,可能会卡在“缺失值怎么填、重复值按什么字段去重”这些细节上。

我的建议是,无论题目有没有要求,都要把处理过程拆成四步:第一步读数据,看shape和dtypes;第二步处理缺失值,先判断是删除还是填充,删除要看删除后还剩多少样本,填充要用均值、中位数还是前向填充,必须给出理由;第三步处理重复值,一般按订单ID去重,但要确定日期和用户ID组合是否唯一;第四步分组聚合,计算目标指标。每一步都写清楚,让面试官看到你的分析思路。

如果题目升级到“判断两个渠道的转化率差异是否显著”,就要用scipy的ttest或卡方检验。这里有一个很容易踩的坑:小样本情况下,直接用正态分布近似会出错,应该用t检验。另一个坑是数据不是正态分布时,要先考虑是否取对数或换用非参数检验。笔试时间有限,不要求你写出完整论文式的分析报告,但至少要写出关键判断和对应代码。

2.4 案例分析题:指标异动排查和AB实验是核心

案例分析题是这批笔试里最像真实工作场景的部分。题目大概是“某金融产品的申请转化率连续三天下降,你作为数据分析师,怎么排查原因”。这类题没有标准答案,但面试官心里的参考答案基本是一致的:先确认数据口径,再拆维度,再看业务动作,最后给出建议。

第一步确认数据口径,要问清楚转化率的分子分母分别是什么,是登录到申请的转化,还是申请到审批的转化,有没有把测试用户和内部员工排除。第二步拆维度,按渠道、设备类型、城市等级、版本号、时段拆分,看是全部下降还是某个子群体下降。第三步结合业务动作,近期有没有上线新版本、调整投放策略、或者遇到节假日和外部舆情。第四步给出建议,如果是某个渠道下降,就重点排查渠道流量质量;如果是全量下降,要考虑策略变更或技术事故。

案例分析想拿高分,还有一个技巧:主动设计AB实验。你可以在回答里说“我可以提出一个AB实验方案,把用户随机分流,实验组用新策略,对照组保持原策略,观察核心指标是否显著变化”。这会让面试官觉得你不仅有分析能力,还有验证思维。金融风控数据分析岗尤其看重这种能力,因为很多策略改动都需要在风险可控的前提下做测试。

3. 实操复盘:从SQL到Python再回到Excel的完整推演

3.1 一道完整SQL题的推演过程

笔试编程题里有一道SQL题,我记得很清楚,因为它综合考了日期函数、去重、join和时间区间判断。题目大概是这样的:有两张表,用户表user_info包含user_id、注册日期reg_date、注册渠道channel;订单表order_info包含order_id、user_id、下单日期order_date、订单金额amount。要求计算2023年1月注册的用户中,有多少人在注册后30天内完成了首单,并按渠道统计完成率。

我当时写的思路是这样的:先找出2023年1月注册的用户及其注册渠道,再关联订单表,但关联时要限定订单日期在注册日期和注册日期加30天之间。这一步的关键是日期加法,不同数据库写法不一样,MySQL用date_add,PostgreSQL用interval,笔试环境如果是线上SQL编辑器,要先确认数据库类型。然后用order_id去重,避免同一个用户下多单被重复计算。最后按渠道分组计算。

-- 思路1:先过滤注册用户,再关联订单,计算是否在30天内完成首单 with reg_user as ( select user_id, reg_date, channel from user_info where reg_date >= '2023-01-01' and reg_date < '2023-02-01' ), first_order as ( select user_id, min(order_date) as first_order_date from order_info where user_id in (select user_id from reg_user) group by user_id ) select ru.channel, count(distinct ru.user_id) as reg_cnt, count(distinct fo.user_id) as order_cnt, round(count(distinct fo.user_id) / count(distinct ru.user_id), 4) as order_rate from reg_user ru left join first_order fo on ru.user_id = fo.user_id and fo.first_order_date between ru.reg_date and date_add(ru.reg_date, interval 30 day) group by ru.channel;

这道题有几个给分点。第一个是“注册后30天内”,这个条件必须写在join的on里,而不是写在where里,否则left join会退化成inner join,把没有下单的用户过滤掉。第二个是“首单”,必须用min(order_date)聚合,不能直接关联全部订单记录,否则一个用户下三单会变成三行,完成率被虚高。第三个是按渠道分组统计时要用count(distinct)而不是count(*),因为同一个用户可能在订单表里出现多次。

实际做题时,我还联想到另一种更稳妥的写法:先算出每个用户的首单日期,再判断是否在30天窗口内,最后聚合。这种思路更符合业务逻辑,也不容易被日期边界问题干扰。笔试时如果时间充裕,我建议写出两种思路,哪怕只写一种,也要在注释里说明“另一种方法是什么”,这会向面试官传递一个信号:你能够从多个角度验证数据结果。

3.2 Python部分:从数据清洗到可视化

Python题我印象比较深的是一道数据清洗加可视化的题目。题目给了一个csv文件,里面是某产品近三个月的日活跃用户数,但数据质量很差:日期列有重复、部分数值列是字符串类型、还有几行明显缺失。要求是清洗数据,画出日活跃趋势图,并指出是否存在异常波动点。

我当时的处理步骤是这样的。先用pandas读取,打印shape、info、head,快速了解数据。看到日期列有重复后,用drop_duplicates按日期去重。数值列有字符串,比如“1000”和“1,000”混在一起,用astype处理前先替换逗号。缺失值不多,直接dropna。然后为了看趋势,我把日期设成索引,按周重采样,画折线图。

import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv("daily_active_users.csv") print(df.shape) print(df.dtypes) print(df.head()) # 清洗:去重、替换逗号、转数值、去缺失 df = df.drop_duplicates(subset=["date"]) df["dau"] = df["dau"].astype(str).str.replace(",", "", regex=False) df["dau"] = pd.to_numeric(df["dau"], errors="coerce") df = df.dropna(subset=["dau"]) # 日期处理 df["date"] = pd.to_datetime(df["date"]) df = df.sort_values("date") df = df.set_index("date") # 重采样后画趋势 df["dau"].resample("W").mean().plot(figsize=(10, 4)) plt.title("Weekly Average DAU Trend") plt.ylabel("DAU") plt.tight_layout() plt.show()

这道题在答完之后,我还在注释里写了一句:如果某个周均值出现明显下跌,需要去核查是否存在埋点漏报、渠道投放暂停或节假日效应。这种注释在真实工作中就是数据分析师会做的事,面试官看代码时能看出你是有业务意识的人,而不是只会调包。

可视化部分,如果笔试环境里可以装库,matplotlib和seaborn最稳妥。如果需要连接数据库做分析,我会用DBeaver查数据,因为它支持常用数据库,写SQL时有语法提示,导出数据方便,还能直接生成一些基础图表。日常工作中我经常在DBeaver里跑数,然后把结果导出成csv,再用Python做深度分析。笔试时如果允许使用这类工具,会节省不少时间。

3.3 用Excel处理同样问题的保底思路

不管笔试环境给不给数据库和Python环境,Excel永远是保底方案。我就见过有人在一道SQL题卡住后,直接用Excel在本地打开数据文件,用数据透视表和vlookup硬生生把结果算出来。虽然步骤笨重一点,但至少能拿分。

Excel处理数据清洗问题的核心操作无非是:删除重复项、查找替换、分列、填充缺失值。比如遇到“1,000”和“1000”混在一起的脏数据,用查找替换把逗号去掉,或者用分列功能把文本转成数字。日期处理上,用text函数统一格式,或者用分列里的日期类型转换。要计算每个渠道的订单数,只需要插入数据透视表,把渠道拖到行标签,把订单ID拖到值区域,改成计数。整个过程不超过两分钟。

Excel的优势在于,它所见即所得,不需要记函数名。很多人觉得Excel不够高级,但在数据分析岗笔试里,Excel其实是最不容易出错的工具。尤其是时间紧张的时候,用数据透视表快速拿结果,再花时间在案例分析题上多写几点,整体收益往往更高。笔试不是秀技能的地方,拿分才是硬道理。

3.4 图表选择思路:不是所有数据都适合用柱状图

笔试里有一道题是给你一组数据,让你选择合适的图表展示。这道题看似送分,但很多人会因为不假思索直接选柱状图而丢分。我用实际业务场景梳理一遍:时间趋势要用折线图,占比结构用饼图或堆叠柱状图,数据分布用直方图或箱线图,两个变量关系用散点图,排名对比用条形图。

比如“某渠道DAU连续30天变化趋势”,正确的首选是折线图,因为它强调时间维度的连续变化。如果画成柱状图,视觉上会把连续变化切成分散的时间点,不容易看出趋势。再比如“不同渠道的客单价对比”,用柱状图就合适,因为渠道是分类变量,重点是横向比较。如果是“各渠道的转化率分布是否集中”,箱线图比柱状图更直观,它能看到中位数、四分位距和异常值。

这些看起来很简单,但恰恰是数据分析笔试里容易被忽略的细节。面试官阅卷时会看你对“为什么选这个图”的解释,如果你能写清楚“因为想看分布”或者“因为要强调趋势”,就已经超过了大多数人。

4. 高频失误、复盘清单和下一步备考方向

4.1 我踩过的三个大坑

第一个坑是SQL里用了count(*)而不是count(distinct)。有一道题统计某段时间内购买用户数,我一开始直接count(order_id),但同一个用户可以下单多次,这样就把用户数算多了。现在回想起来,这个错误在真实工作里也经常出现,统计“用户数”时一定要明确按什么字段去重。

第二个坑是Python清洗时没有先看数据类型就做运算。有一列金额是object类型,里面有“1,200.00”这样的字符串,我直接取均值报错,后来才发现要先用str.replace去逗号再转float。这个坑在笔试里浪费了我五分钟,如果在真实项目里,可能还会导致分析结论错误。

第三个坑是案例分析题里没有先问澄清问题就开始写结论。题目说“转化率下降10%,请分析原因”,我上来就按渠道拆解,但没想过口径是否变化,也没想过“转化率下降”是相对哪个基准。后来复盘时意识到,数据分析师拿到需求第一件事应该是确认口径,而不是动手写SQL。这一点在面试里尤其重要,因为面试官就是看你有没有这种下意识。

4.2 常见问题速查表

我把笔试和面试中比较常见的问题整理成一个速查表,方便你在考前快速过一遍。

问题常见错误正确处理思路
统计指标口径不清晰直接按题目字面意思计算先明确分子分母、时间范围、是否去重
留存率计算用注册用户数做分母,漏看时间窗口按注册时间分组,统计后续窗口期活跃用户数
缺失值处理一律删除或一律填充先看缺失比例和缺失机制,再决定删除或填充
窗口函数partition by写错或漏写先想清楚“组内汇总”和“全局汇总”的区别
AB实验设计样本量太小、没有做显著性检验先估计样本量,再随机分流,最后用检验判断
指标异动排查直接给结论按“口径—维度—业务动作—实验验证”顺序走
图表选择一律柱状图先判断是趋势、分布、对比还是相关关系

4.3 不同行业数据分析笔试的侧重点差异

复盘完小满这批笔试,我又翻了一些其他公司的真题,发现不同行业的侧重点差异还挺大。互联网公司更爱考AB实验、用户增长和漏斗分析,题目常常给你一组埋点日志,让你算转化率。银行系和金融科技公司更偏风控、反欺诈和用户分层,SQL题里经常出现历史还款记录和逾期标签。传统零售和制造企业则偏经营分析,比如销售额同比环比、库存周转率、ABC分类。

所以在准备笔试前,先想清楚你投的行业是什么,再决定复习重点。金融风控方向,重点看特征工程、逻辑回归、评分卡的基本概念,还有渠道质量分析。互联网方向,重点看A/B test原理、留存曲线和漏斗归因。如果手头时间充足,可以找几个数据分析案例库,把分析过程完整走一遍,比如拉一份订单明细数据,自己算客单价、复购率、用户价值分层,再输出一份分析报告。这类项目经历写在简历上也很有说服力。

另外,如果你有多余精力,可以了解一点无监督学习在用户分群里的应用,比如聚类算法可以把用户分成高价值、潜力、沉默几类。这类知识不一定直接考,但在案例分析题的加分项里非常好用。R语言和数据挖掘类工具,通常不是笔试的主流,但在后续面试中提一句“我熟悉R或Python”,会显得知识面更广。

4.4 对“小满秋招第一批”这份卷子的整体感受

做完小满第一批笔试,我的最大感受是:它没有刻意刁难人,但每一道题都在筛选“真正做过事的人”。SQL题和Python题都偏业务,如果只是背语法而没有实际处理过脏数据,很容易在细节上卡住。案例分析题更是如此,没有标准答案,一眼就能看出你是只会背框架,还是真的理解业务逻辑。

如果你投的是第二批或后面的批次,我给的建议是:别急着刷新题,先把错题重做一遍。像我这样把SQL窗口函数、留存计算、数据清洗、案例拆解这四类题练到几乎不用思考,笔试时就会从容很多。数据分析这个岗位,考察的本质不是知识量,而是你遇到问题时的反应速度和分析习惯。

最后分享一点个人的备考体会

笔试这东西,准备的时候总觉得内容太多,题目永远刷不完。但真正考完回头看,核心就那几件事:SQL能写好窗口函数,Python能折腾明白pandas,Excel能快速出透视表,业务题能按框架不乱套。小满这批笔试给我最大的教训是,不要相信“考前突击一个月就能上岸”的错觉,数据分析是靠一次次实操喂出来的。每一次用真实数据做清洗、做分析、做图表,都是在给笔试积累手感。如果时间允许,做一个完整的数据分析项目,把数据拿到手、把问题定义清楚、把分析过程写到能给别人看,效果比刷十套题都明显。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 6:14:27

Drawio数据驱动组织架构图:从CSV批量生成到自动化维护

这次我们来看一个画图工具&#xff1a;Drawio。它不是新东西&#xff0c;但围绕它画“组织架构图”这个具体场景&#xff0c;很多人没用好。这个工具的核心是免费、开源、跨平台&#xff0c;支持在线和离线使用&#xff0c;能画出专业级的图表&#xff0c;并且文件格式开放。对…

作者头像 李华
网站建设 2026/9/6 5:14:21

Claude+Seedance+剪映:AI辅助剪辑工作流实战指南

最近在剪映工作流里看到一个新的组合思路&#xff1a;用 Claude 来生成分镜、动效提示词和剪辑脚本&#xff0c;用 Seedance 2.5 这类视频生成模型产出动态素材&#xff0c;最后回到剪映里做关键帧、转场和字幕合成。很多人在讨论“剪映的正确打开方式”&#xff0c;核心倒不是…

作者头像 李华
网站建设 2026/9/4 19:45:38

Android集成OpenCV:Demo工程解析与环境配置避坑指南

简介&#xff1a;OpenCVDemo_Android.zip是一份面向Android开发者的OpenCV集成与人脸识别示例工程&#xff0c;适合需要快速掌握OpenCV导入、Camera预览和实时人脸检测的初学者或中级开发者。资源包共260个文件&#xff0c;大小54.3MB&#xff0c;包含156个hpp头文件、53个h头文…

作者头像 李华
网站建设 2026/9/5 4:21:11

Python领域驱动设计实战:手把手实现聚合、实体与仓储

简介&#xff1a;一份演示领域驱动设计&#xff08;DDD&#xff09;落地的Java示例项目&#xff0c;面向中高级开发者&#xff0c;帮助读者理解实体、值对象、聚合、领域服务与领域事件在真实业务中的组织方式&#xff0c;并解决“概念会背、代码难写”的常见问题。压缩包为RAR…

作者头像 李华
网站建设 2026/9/4 9:36:21

Python爬虫实战:搞定SEO数据采集与排名监控

简介&#xff1a;这是基于Python开发的SEO数据采集与分析工具&#xff0c;面向SEO从业者、网站运营者以及Python爬虫学习者&#xff0c;定位在帮助用户用自动化脚本代替手工采集。程序通过自动抓取网页内容&#xff0c;可辅助完成关键词研究、元信息检查、链接结构分析、内容质…

作者头像 李华