1. 笔试整体情况与岗位考察逻辑
2024年春招,我投了联想的数据分析岗,笔试走的是北森系统那一挂,整体时长大约90到100分钟,题量不大但覆盖面非常杂。整个试卷我做完之后最大的感受是:它不是单纯考你“会不会写SQL”,而是在模拟“你入职之后能不能直接上手干活”。
联想的数据分析岗和互联网大厂的数据分析岗有一个明显区别——它更偏实体制造业+全球化业务的数据支撑场景,所以笔试题目里会出现大量“供应链库存”“渠道销售”“海外市场”“售后返修”这类业务语境。如果你只是刷过那种通用的“电商订单表”练习,做联想的题会有一点错位感,但考察的技术内核其实是共通的。
先说说这套卷子的整体结构,通常由四到五个模块组成:第一部分是逻辑推理与数理思维(类似行测里的资料分析+数字推理),第二部分是统计学与概率论基础,第三部分是SQL查询实操,第四部分是Python数据处理能力考察。部分地区或批次的岗位会加入第五部分——业务情景案例分析,或者是英文阅读理解与邮件写作。这个可能和岗位所在的部门有关,供应链数据、经营分析、市场洞察类岗位的笔试题目会有差异。
我拿到的批次里,英语题出现在前段,是一篇关于个人电脑市场需求波动的短文,大概600词出头,5道选择题,考察的并不完全是翻译能力,而是你能否从英文材料中提取数字和趋势。这个出题思路非常“联想”——毕竟联想是全球化公司,日常要阅读大量来自海外市场、IDC报告、Gartner数据的英文材料,如果连数据描述都读不懂,后面分析就无从谈起。
全卷的时间分配我建议这样:逻辑和统计题控制在25分钟内,SQL题30分钟,Python题20分钟,案例分析留15分钟以上,最后留5到10分钟检查。如果前面行测类题目卡住了,果断跳,别恋战,后面的大题分值更高,而且更有区分度。
2. SQL与数据提取能力考察:笔试的重头戏
2.1 考察范围与典型表结构
SQL在联想的笔试里占据绝对核心地位,基本上每个批次的试卷都有2到3道SQL大题,每道大题下挂3到5个小问,从简单查询到窗口函数层层递进。它考察的不只是你“能不能查出结果”,更是你在一个数据量级较大、表关系复杂的真实业务环境中,能不能写出高效、可读、可维护的查询。
我遇到的表结构大概是这样的场景:一张销售订单明细表(字段包含订单编号、销售日期、区域、渠道、产品型号、单价、数量、销售额),一张产品信息表(产品型号、产品线、上市日期、成本价),一张售后服务表(服务单号、订单编号、服务类型、服务日期、维修费用),还有一张区域目标表(区域、月份、目标销售额)。
乍一看都是很常规的表,但真正做题的时候会发现几条隐含的坑:第一,销售订单有好几条记录是作废状态,需要用状态字段过滤;第二,产品型号在订单表和产品表里存在大小写不一致的历史脏数据;第三,售后服务表和订单表不是一对一关系,一个订单可能产生多条服务记录,做关联时很容易造成数据膨胀。
所以我的第一条建议是:拿到题目先别急着写SQL,花两分钟把表关系和字段含义读透,尤其看清楚哪些表是一对多、哪些多对一。这在笔试里能帮你避开最基础的连接陷阱。
2.2 窗口函数是分水岭
联想笔试的SQL题,前两问通常是比较基础的过滤、分组、排序,到第三问开始就会上窗口函数。我当时遇到的一个题目是这样的:统计每个区域每月销售额,并计算每个区域截至当月的历史累计销售额,以及该区域当月销售额占全国当月销售额的比例。
这道题非常典型地考察两个窗口函数能力:一是累计求和使用SUM() OVER (PARTITION BY 区域 ORDER BY 月份 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW);二是占比计算,用SUM(销售额) OVER (PARTITION BY 月份)拿到全国当月总额,再除以区域当月值。
如果平时只是用GROUP BY做分组汇总,这道题虽然也能硬凑出来,但SQL会长得很难看,而且容易错。窗口函数的核心价值就在于:它能在不缩减行数的情况下,把聚合结果和原始明细放在同一行返回给上层查询,这在做同环比、累计值、占比、排名这类计算时是无可替代的。
另外在联想这种全球化业务里,“分区维度”往往不只有一个。比如同时要看“产品线×区域”的维度组合时,PARTITION BY里面可以放多个字段,但要注意ORDER BY子句的选取,在很多场景里还需要在ORDER BY后面接ROWS/RANGE窗口子句来精确定义窗口范围。笔试中虽然不一定会考到太深的窗口边界细节,但PARTITION BY和ORDER BY配合使用的场景一定要练熟。
2.3 SQL实操的心得与常见扣分点
我在准备阶段刷了很多联想的模拟题和往年笔经,总结出几个高频扣分点,这里直接列出来:
- 没有过滤无效数据:订单状态限定条件漏写,导致汇总金额虚高。
- NULL值处理不当:在计算比率或差值时,没有用
COALESCE或IFNULL处理空值,结果集出现大量空行,甚至影响后续JOIN。 - 日期格式陷阱:销售日期字段是datetime类型,按月统计时一定要用
DATE_FORMAT或年-月抽取,别直接用GROUP BY 日期,否则会把同一个月拆成几十行。 - 关联条件不完整:查订单加服务信息时,JOIN条件里漏掉关联维度之外的条件,造成一对多重复计算。
- 排序要求不看清:题目要求取每个区域销售额排名前3的月份,需要用窗口函数做排名后外层过滤,而不是简单ORDER BY后截断。
我在实际考试中,因为有一道小题的JOIN条件漏了一个状态过滤,导致计算结果比预期多出了几千行。这种错误在自测的时候很难发现,因为样例数据量小,膨胀不明显,只有把结果和题面给的答案样例对照时才能察觉。
所以在平时训练时,一定要养成“写完SQL后反向验算”的习惯:先看行数是否符合直觉,再看关键指标量级是否合理,最后看边界值。比如统计区域占比,所有区域占比加起来应该等于100%左右,如果不等于,基本可以判断某个区域的数据重复或丢失了。
3. Python与数据处理能力:从写代码到解决实际问题
3.1 笔试中的Python考法
Python部分在联想笔试里的形式通常不是让你写一个完整的脚本,而是给出若干个代码补全题、程序输出判断题,以及一道比较大的数据处理编程题。补全题往往围绕pandas的常用操作:读入CSV、清洗字段、分组聚合、合并表、透视表、处理时间序列。
举个例子,我记得有一道补全题是这样:给定一个CSV文件,包含产品型号、价格、销量、上架日期等字段,要求删除价格为空的行,将上架日期转为datetime类型,并新增一列“销售额”,然后按产品线分组汇总销售额。核心考点就是几个pandas的链式操作:
import pandas as pd df = pd.read_csv("sales_data.csv") df = df.dropna(subset=["price"]) df["listing_date"] = pd.to_datetime(df["listing_date"]) df["revenue"] = df["price"] * df["sales_volume"] result = df.groupby("product_line")["revenue"].sum().reset_index()这类题目不要求背API,但要求你面对一个具体任务,能快速选对方法。很多人在平时自己写代码时习惯用dropna()不指定subset,结果把整行全删了;或者pd.to_datetime()在遇到格式不统一的字符串时直接抛异常,不知道加errors="coerce"参数。这些都是笔试的高频陷阱。
3.2 机器学习基础的轻量应用
除了纯数据处理,Python模块里还会有几道轻量级的机器学习题目,通常以“给定场景选算法”或“判断模型评估指标”的形式出现。我遇到的题目是:给定一个包含多个数值特征和标签的数据集,目标是预测产品下一季度的销量,问应该优先考虑哪类模型,以及用哪个指标评估。
这道题的正确答案逻辑是:销量预测是回归问题,优先考虑梯度提升树类模型或线性回归,评估指标用RMSE或MAE,而不是准确率。如果你选了“分类模型”或“准确率”,说明对任务类型的判断还不够敏感。
另一个高频考法是无监督学习的场景识别。比如给出一个渠道明细表,要求根据用户的购买频次和客单价将用户划分为几个群体,显然应该用聚类算法(KMeans等),这时候题目可能会问“特征是否需要标准化”。这里就很自然地把统计学特征工程和机器学习串在一起考了,没有直接考一个具体的库函数,而是考你有没有完整的建模思维。
我在准备这一块时做了两件事:一是把“回归、分类、聚类、降维”四大类任务对应的常用算法和评估指标整理成一张对照表,反复过;二是每个算法都准备了“适用场景”和“不适用场景”各两个案例。笔试里遇到“选算法”的题目基本能秒答。
3.3 数据可视化思想在选择题里的渗透
联想的笔试里还出现了一些和可视化相关的选择题,它不是问你matplotlib某个函数的具体参数,而是给你一个业务场景,让你选“最适合呈现该数据关系的图表类型”。比如比较各区域季度销售额趋势,选项是折线图、饼图、柱状图、散点图;看两个产品线的价格与销量关系,选项变成散点图更合适。
做这类题的原则是:先看数据是“时间趋势、构成占比、类别对比”还是“相关性关系”,然后匹配图表。趋势用折线、占比用饼图或堆叠柱状、类别对比用柱状图、相关性用散点图。联想作为一家硬件厂商,它的业务汇报里大量使用这些基础图表,所以考察这类素养很合理。
4. 统计学与业务分析:对“懂业务”的隐性筛选
4.1 统计学基础题:不超纲但需要熟练
统计学部分大概是10到15道选择题或者填空题,难度基本控制在本科统计学教材范围内,但出题角度比较实务。比如给了产品售后维修天数的数据分布,问均值和中位数哪个更能代表集中趋势;再比如给了一个AB测试的结果,样本量、均值、标准差都有,问差异是否显著应该用哪种检验方法。
这里我印象比较深的一道题是:某渠道的订单转化率上个月是3%,这个月是3.5%,问能否直接判断这个月表现更好。答案当然是不能,需要考虑样本量是否变化、差异是否具有统计显著性、是否受季节或促销活动干扰。这道题非常典型地反映了数据分析岗位对“业务归因敏感性”的要求——它不要你只算出一个数字,还要你判断这个数字能不能代表真实业务变化。
关于AB测试和假设检验,我建议大家至少掌握以下几组概念:原假设与备择假设、第一类错误与第二类错误、P值的含义与局限、t检验与z检验的使用场景、置信区间的业务解读。联想这类全球化业务中,定价策略、页面改版、市场投放都会用到AB测试,所以这部分考察并不过分。
4.2 案例题:以业务场景为核心的综合性分析
案例分析题是联想笔试和很多互联网大厂不太一样的地方。它通常不会给你一份完整的数据表让你去跑数,而是用文字+少量图表描述一个业务现状,让你写一份简要的分析思路或结论要点。
我遇到的题大致是:一个区域的某条产品线连续两个季度销量下滑,已知价格、渠道、竞品、售后评分等维度均有变化,要求列出你认为需要优先排查的3个方向,并说明理由和所需数据。
这类题没有标准答案,考察的是分析框架和逻辑完整度。我的回答思路是:先排除数据口径和统计周期问题,确认下滑是真实存在的;再拆解内部因素(价格调整、渠道库存、促销投入变化、售后口碑波动)和外部因素(竞品新品发布、市场大盘萎缩);最后按“影响面×影响速度×可干预程度”排序,优先排查渠道和价格这两个最可能直接产生波动的方向。
写案例题的时候要注意:不要只列方向,要写“我预期看到什么数据就说明什么结论”,这样才像一个真正做过分析的人。比如“如果该区域库存周转天数上升,但终端零售数据平稳,那说明问题出在渠道压货而非消费需求下降”。这种带假设的推论,远比干巴巴列“价格、渠道、竞品”三个词有说服力。
4.3 数理思维题:时间紧张时最值得放弃的部分
笔试前端的数理思维题有点像公务员考试里的资料分析+数字推理混合体。给你一张表格或者一段业务数据,让估算增长率、均值、倍数关系;或者给出几个数字让你推下一个数字。它的难度其实不大,但非常考验反应速度和计算精度。
我的建议是:这一模块如果平时练得少,考试时可以做标记跳过,优先保证SQL和Python大题的完成度。因为数理思维题的单个分值通常低于编程题,而耗时往往不低。如果后面SQL大题空着,那基本就和下一轮说再见了。
当然,如果你备考时间充裕,这一模块可以用“资料分析”类题库来练,每天30分钟,练到看到表格就能快速锁定要算的指标,基本就够用了。核心技巧是:先看问题再找数据,不要一上来就细读表格;估算优先于精算,能约分就约分;注意单位陷阱,百分比和千分比差一个数量级。
5. 面试前的能力图谱与查漏补缺清单
以我的经验,笔试的重点完全可以提前锁定。你不需要漫无目的地刷一切数据分析题,只需要围绕联想的岗位JD去构建能力图谱。
技能主要分四层:第一层是数据提取与处理,对应SQL和pandas,目标是把数据快速拿到并清洗成可分析形态;第二层是统计与建模基础,对应假设检验、回归、聚类等,目标是从数据中得出结论;第三层是数据可视化与沟通表达,对应图表选择、指标拆解、结论汇报;第四层是业务理解与逻辑思维,对应案例分析和数理推理,目标是把结论落地为行动建议。
备考时可以把这四层做成一个自查清单,逐项打勾。SQL窗口函数不熟就集中练窗口函数;pandas的groupby和merge不熟就集中刷这两个操作;假设检验概念含糊就回去翻统计学教材;案例题没框架就多读一些经营分析类案例。笔试前的最后一周,我建议把所有精力放在查漏补缺上,而不是继续盲目刷新题。
另外有一点值得提醒:联想的笔试是分批次进行的,不同批次的题目可能出自相同题库,所以在笔试前到论坛或牛客上看看最新的笔试经验分享,了解当前批次考了哪些题型,是非常高效的准备方式。但要注意不要盲目依赖“押题”,因为题库很大,概率上很难精准命中,按能力图谱系统复习才是稳的。
我个人在踩过几次坑之后的体会是:这类笔试最难的其实不是某一道题,而是如何在有限时间内合理分配精力。SQL和Python的大题一定要保证充足时间,案例分析要写出“层层递进”的逻辑感,统计学题靠平时积累,数理思维题敢于取舍。想清楚这一点,这场笔试你就赢在了策略上。