乐信2020数据笔试题解析:SQL窗口函数与业务分析框架

乐信2020数据笔试题解析:SQL窗口函数与业务分析框架 1. 从乐信的业务盘子看数据岗到底在考什么能力先说结论乐信2020年这场校园招聘数据笔试题放在今天回头看依然是消费金融行业数据类岗位一份相当典型的考察样本。如果你正在准备互联网大厂或者持牌消费金融公司的数据分析、数据挖掘、数据开发类岗位这份试题的命题逻辑和考点分布值得你反复琢磨。乐信是做分期乐起家的业务主要覆盖分期购物、消费信贷、金融科技输出这几个板块。这个业务本质就决定了数据岗位不是锦上添花的部门而是直接参与风险定价、获客策略、额度管理、贷后监控的核心角色。所以它的数据笔试题看起来是在考知识点实际上是在筛选你有没有用数据解决业务问题的思维底子。我当时拿到2020届这套题目时第一感受是知识点不偏不怪绝大部分都是数据岗面试题库里的老朋友比如SQL窗口函数、贝叶斯公式、逻辑回归、AB实验显著性判断但题目包装全部套了消费金融场景。比如不会直接问你什么是召回率而是给你一个信贷风控模型告诉你坏账率、通过率、样本不均衡让你反推这个模型在业务上到底好不好用。这种考法比那些干巴巴问概念的题目高级一个档次也更能筛出真正干过活的人。这套题适合谁看三类人。一类是正在准备互联网或金融行业数据岗校招的同学可以用它检验自己复习的覆盖度第二类是刚入行一两年的数据分析师想看看正规军的考察框架长什么样顺带补一补自己的知识盲区第三类是带新人的团队负责人完全可以拿这套题的思路去设计自己的新人筛选题目。接下来我按题型结构和核心考点两条线拆解这份试题每个关键知识点都会补充推导逻辑和答题套路而不是只给一个标准答案。2. 2020届笔试题型拆解四类题目的命题逻辑与应对顺序整套笔试大概三个小时题型分四大类客观选择题、手写SQL题、概率统计计算题、开放业务设计题。不同题型的考察目标完全不同答题策略也不一样先把这个框架摸清楚你上考场才不会慌。2.1 客观选择题考察知识面的广度与准确度选择题量不小覆盖面很广大致包括数据结构与算法基础、数据库原理、机器学习基础概念、统计学基础术语、业务常识这几块。从我拿到的回忆版题目看有几个值得注意的考察方向数据结构图相关题目出现频率不低。比如给定一个带权无向图让你判断最小生成树的边权和或者给一个邻接矩阵问深搜和广搜的遍历序列。说实话这些内容对数据分析岗来说平时用得不多但作为计算机基础素养的筛选手段校招笔试里几乎必考。我的建议是不要花太多时间死磕难题图的遍历、最短路径、最小生成树这三大块的经典题型过一遍就够了面试中极少出现偏题怪题。数据库原理侧重索引和事务。比如问InnoDB索引底层为什么用B树而不是红黑树——这题高频到几乎是默认送分题答得上来的人很多但能说清楚B树把所有数据都存在叶子节点并且叶子节点之间有指针连接所以范围查询只需要顺序扫描叶子节点链表的人才是真懂。还有事务隔离级别、脏读幻读区别、MVCC机制这类题目属于背了就会、不背就懵的知识点。机器学习概念题聚焦模型间的对比。比如问岭回归和Lasso回归的区别核心得分点是Lasso使用L1正则化可以把不重要的特征系数压缩到0起到特征选择的作用岭回归使用L2正则化只能让系数趋近于0但不能等于0。再比如随机森林和GBDT的区别要答出Bagging和Boosting的本质差异、并行与串行的训练方式、降低方差与降低偏差的不同目标。这种对比型知识点光理解不够得能用一两句话准确概括核心差异考场上时间紧平时就要练这种一句话说清楚的能力。2.2 手写SQL题以业务场景为外壳考察窗口函数和取数逻辑SQL题是整个笔试里最拉分、也最贴近实际工作的部分。乐信这套题里的SQL题几乎全部套了业务场景不是让你背语法而是看你能不能把一个业务问题翻译成正确的取数逻辑。我印象比较深的几个考点用户首单时间的计算。基本上就是考察MIN(order_time)配合GROUP BY user_id的用法送分题但很多人会在如何保证取到整条订单记录而不是只取到时间字段上犯迷糊。标准写法是用窗口函数ROW_NUMBER()按用户分组、按时间排序后取排名为1的记录而不是用GROUP BY直接拼原因很简单GROUP BY只能聚合出用户维度的最小时间你要拿那条订单的其他字段时就很别扭还得再关联一次。连续登录天数的计算。这是SQL题里的老网红了几乎每一家互联网公司的笔试题里都有它的影子。核心思路是用DATE_SUB(login_date, INTERVAL ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY login_date) DAY)把日期减去排名得到一个分组标识连续登录的记录这个差值是一样的再按这个差值分组计数。这道题能区分出你是背过答案还是真的理解窗口函数。留存率的计算。给你一个用户活跃表让你算次日留存率、7日留存率。核心是把用户首日活跃日期和后续活跃日期做关联判断后续活跃日期是否等于首日活跃日期加N天。很多人在这一步容易把用户在该日期是否活跃和用户在该日期是否首次活跃搞混一错就全错。累计值计算比如按月份累计用户借款金额。这个就是SUM() OVER (PARTITION BY ... ORDER BY ...)的典型用法考察滚动累计的窗口逻辑。我个人的考场经验是先花两分钟把题目里的业务描述翻译成我需要按什么维度分组、对什么字段做什么操作、输出什么粒度这三句话再动手写SQL正确率会高很多。别一上来就写写完发现粒度不对返工更浪费时间。2.3 概率统计计算题知识本身不难难在快速建模概率统计题是校招数据岗笔试的分水岭。基础好的人拿满分基础不牢的人直接懵。乐信这套题主要考了三类第一类是贝叶斯公式的应用。典型的场景是某个风控规则命中率为5%命中规则的人中真实坏人占比是80%同时坏人中有90%会命中这条规则问随机抽一个用户是坏人的概率是多少。这题考的是对全概率公式和贝叶斯公式的灵活运用不是套公式就行你得先理清事件之间的关系。我的建议是拿到题目先画出事件树再列公式别心算。第二类是期望和方差的计算。比如给一个离散随机变量的分布列求期望和方差或者给两个独立随机变量问线性组合的期望方差。这类题只要记住核心公式E(aXbY)aE(X)bE(Y)以及独立条件下Var(aXbY)a^2Var(X)b^2Var(Y)稳拿。第三类是区间估计和假设检验。校招笔试通常不会让你算复杂的t统计量更常见的是考察逻辑比如在95%置信水平下某转化率提升方案的置信区间是[0.32, 0.38]能否说明方案显著有效——答案是不确定性置信区间包含了原假设的0.35说明不能拒绝原假设需要看p值。这种题考的是对统计推断逻辑的理解而不是计算能力。2.4 开放业务设计题没有标准答案但有高分框架最后一道大题通常是开放式的业务设计题也是这套笔试里最考验综合能力的一道。2020届的题目大意是平台发现近三个月新用户的首笔借款逾期率持续上升请你设计一套分析方案找出可能的原因。这种题没有标准答案但评分一定有套路。高分回答通常包含这些要素明确问题口径逾期率的分子分母分别是什么逾期天数怎么定义、拆解维度按渠道、按产品类型、按用户画像、按时间趋势、提出假说渠道质量下降、风控策略放松、用户结构变化、外部经济环境影响、设计验证方式数据怎么取用什么方法验证、给出业务落地建议哪些是能马上做的哪些需要长期跟进。低分回答长什么样只列了一堆可能的原因没有拆解逻辑没有验证方案。这种答案看起来点很多但经不起追问因为任何一个原因你都没说清楚怎么验证。所以答题框架比答案本身更重要哪怕你的假设不全对只要框架清晰、逻辑自洽分数就不会低。3. 五大核心知识点的深度拆解从原理到答题套路这一节把试题里反复出现的核心考点逐个过一遍每个知识点都讲清楚为什么这么考、背后逻辑是什么、怎么答才能拿满分。3.1 SQL窗口函数数据分析师的第一生产力乐信这套SQL题几乎有一半都在考窗口函数。为什么因为窗口函数在实际取数工作中真的太常用了。行号、排名、累计求和、移动平均、同环比这些分析需求用GROUP BY很难实现或者实现得很别扭但窗口函数就是为这些场景而生的。窗口函数的基本语法是函数名() OVER (PARTITION BY 分组字段 ORDER BY 排序字段 窗口范围)。三个部分各司其职PARTITION BY决定按什么维度分组ORDER BY决定组内排序字段窗口范围决定计算时看哪些行。以计算每个用户最近一笔订单的金额为例正确写法是SELECT user_id, order_amount FROM ( SELECT user_id, order_amount, ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY order_time DESC) AS rn FROM orders ) t WHERE t.rn 1这个写法有两个关键点一是ROW_NUMBER()生成行号二是ORDER BY order_time DESC让最新订单排第一。外层查询过滤出rn1的行就是每个用户最近一笔订单。一个小细节如果同一时刻有多笔订单ROW_NUMBER()的排序结果是不确定的需要再加一个唯一字段如订单ID做次级排序保证结果可复现。还有一个高频考点是SUM() OVER (ORDER BY ...)的累计求和用法注意不写PARTITION BY时是全表累计写了则是组内累计。这一句区别校招笔试里很容易考到务必记清楚。3.2 概率论与统计推断别只会背公式要理解背后的逻辑概率统计这部分题目虽然不难但很多同学容易因为公式背得不够熟而丢分。我的建议是校招笔试题的统计部分与其死记公式不如理解三个核心思想。第一个是条件概率的思想。贝叶斯公式的本质是当你掌握新的信息后你对某个事件的概率判断会更新。放在信贷风控场景里就是先验概率整体坏账率乘以似然度坏人的特征分布得到后验概率看到某个特征后判断是坏人的概率。理解了这一层你就知道为什么风控模型的核心是估计P(坏|特征)而不是判断P(特征|坏)。第二个是假设检验的思想。所有的显著性检验都可以还原成一句话假设原假设为真我们观察到当前样本结果甚至更极端结果的概率是多少如果这个概率很小说明原假设值得怀疑。这个概率就是p值。理解了这个逻辑你就可以应对任何场景下的显著性判断题不管题目怎么包装。第三个是样本与总体的思想。校招笔试常考的一个点用样本均值估计总体均值时样本量越大标准误越小估计越精确。标准误的公式是总体标准差除以样本量的平方根从公式就能看出样本量翻4倍标准误才减半。这就是为什么增加样本量在业务上往往性价比最高的实验优化手段因为它直接作用于统计功效。3.3 机器学习基础概念重点考察模型机理和适用场景乐信这套题里机器学习部分不考手推公式主要考模型机理和适用场景。比如给你一个业务问题让你选择合适的算法并说明理由。这就考察你对常用算法的本质是否有清晰认知。我把数据岗笔试里最高频的几个模型对比整理一下维度线性回归逻辑回归决策树随机森林GBDT/XGBoost任务类型回归分类分类/回归分类/回归分类/回归核心思想最小二乘拟合线性决策边界Sigmoid递归划分特征空间Bagging随机特征选择Boosting串行拟合残差优点简单可解释输出概率、可解释可解释性强抗过拟合、并行精度高、特征重要性可解释缺点欠拟合严重场景特征交互需手动处理易过拟合可解释性下降参数多、训练慢常见应用价格预测风控评分卡规则提取用户流失预测CTR预估、风控模型有个考题方向值得单独提醒逻辑回归的系数解释。很多人以为特征系数越大特征越重要这是不严谨的。逻辑回归输出的是对数几率系数表示该特征每增加一个单位对数几率的变化量还要看特征的量纲是否一致。标准化的特征系数才可以直接比较大小。所以答题时不要只说系数大小要提一句特征标准化后系数的绝对值反映特征重要性这个细节能让你的答案在众多考生里脱颖而出。另外一个高频考点是过拟合的处理手段通常从数据层面更多样本、数据增强、模型层面简化模型、加正则化、训练层面早停、交叉验证三个维度展开回答。每种手段都最好能结合业务场景说一句比如在信贷风控中由于样本天然不均衡尤其中小企业信贷数据量少过拟合问题尤其突出常用加重正则化系数、使用树模型深度限制等方法缓解。3.4 数据结构图相关为什么它对数据岗也重要看到热搜词里有数据结构图我猜是因为很多人对这类题感到头疼想找解析又搜不到。这里多说几句。图相关题目在数据岗校招笔试中出现频率确实不低但考察深度远没有开发岗那么深。常见考点就是三种图的基本存储邻接矩阵、邻接表、图的遍历DFS、BFS、最短路径与最小生成树Dijkstra、Prim、Kruskal。对数据岗来说图论知识的实际价值体现在哪些地方呢一个是社交网络分析比如用户关系链中的影响力传播路径另一个是知识图谱构建比如实体识别和关系抽取后的图谱存储与查询还有供应链和风控场景里的关联网络分析比如团伙欺诈检测本质上就是在用户关联图上找稠密子图。所以虽然笔试只是考基础题目但背后的应用场景是真实的。复习建议就一条别死磕困难题。把三种存储方式的适用场景、DFS和BFS的遍历顺序、Dijkstra和Prim的算法步骤吃透题目刷个三五十道面试笔试足够用了。3.5 数据清洗与预处理笔试里的隐形考点单独提一下数据清洗这个方向。乐信这套题虽然没有单独设一个大题考数据清洗但在SQL题和业务设计题里都隐含了数据质量问题的处理。比如统计用户首单时间时是否需要过滤掉测试用户、是否需要处理同一个用户多条首单记录、时间字段是否需要统一格式——都是数据清洗的范畴。热搜词里有pandas数据清洗和处理说明很多人也在自学这块。我的建议是数据清洗的知识点完全可以借助pandas来掌握因为它的API设计非常符合数据清洗的标准流程加载数据、查看概览DataFrame.info、describe、处理缺失值dropna、fillna、处理重复值drop_duplicates、类型转换astype、文本清洗str.replace、正则、异常值处理分位数截断、3σ原则。把pandas这套流程练熟不仅能应付笔试实际工作里拿到一份烂数据也能快速上手。隐含的考点还包括如何定义脏数据。同一份数据在A场景下是脏数据在B场景下可能完全不脏。比如某个用户年龄字段为0在描述统计时算异常值但如果0表示未填写直接剔除会造成样本偏误更好的做法是单独分一个未知年龄类别。这个思路在开放题里提出来会很加分。4. 业务场景题的答题框架从数据治理到增长策略的一线思路开放业务设计题是整套笔试里区分度最大的一道题值得单独开一节讲透。4.1 框架第一层把业务问题翻译成数据问题拿到一个业务问题第一反应不是我猜是XX原因而是我要用什么数据来验证。比如新用户首笔借款逾期率上升这个问题你需要拆成三个子问题哪些用户逾期了这些用户从哪里来他们在逾期之前的行为轨迹是什么拆完之后对应的数据需求就出现了用户基础信息表年龄、地区、职业等、渠道表注册渠道、推广活动ID、借款记录表借款金额、期限、利率、还款表现表是否逾期、逾期天数、行为日志表注册后的浏览、点击行为。能够准确列出分析所需的数据表说明你真的理解业务问题背后需要什么数据支撑这是第一个得分点。4.2 框架第二层为什么必须先做维度拆解维度拆解是回答业务分析题的核心动作也是最能体现数据分析师思维水平的部分。常用的拆解框架有三种第一种是时间维度拆解。按周、按月看逾期率的走势搞清楚问题是从什么时候开始恶化的是突变还是渐变。突变通常对应某个策略或渠道的调整渐变则更可能是结构性因素。第二种是用户维度拆解。按新用户的注册渠道、年龄、城市等级、首次借款金额、借款期限等维度去切分对比各组逾期率的差异。比如一线城市24-30岁用户逾期率显著高于其他组那问题可能出在这个用户群体的风控审批策略上。第三种是产品维度拆解。按借款产品类型拆分期乐和乐花卡等产品的客群、额度、利率差异巨大逾期率肯定不同。如果某个产品线的新客逾期率恶化要先看是不是产品额度策略放宽了。维度拆解这一步不要怕细宁可多拆也要避免遗漏。但要注意拆完之后一定要汇总结论不要只罗列数据要说出哪个维度差异最大最值得深挖。4.3 框架第三层提出可验证的假设而不是空想原因维度拆解之后自然是提出假设。好的假设至少包含两个要素因果链路和验证方法。打个比方渠道质量下降导致逾期率上升不算完整假设完整的假设是新激活渠道带来的用户中羊毛党占比偏高这些用户借款后不打算还款导致首次借款逾期率上升。可以通过比较新老渠道用户的设备指纹重合率、借款后首周活跃度、提前还款比例来验证。把假设落到可验证的指标上这一步就是区分会分析的人和只会讲故事的人的分水岭。业务设计题的高分答案通常每个假设后面都跟了一个具体的验证方案。4.4 框架第四层从分析到落地形成策略闭环最后一个得分点是落地建议。分析做得再漂亮最终要回答so what——业务方看了你的分析结论之后能做什么以新客逾期率上升为例可能的落地策略有收紧特定渠道的准入规则、对新用户设置更低的首次借款额度、增加首借用户的贷中监控频率、优化催收策略的触达优先级。每条策略最好配套一个效果评估方案比如用AB实验验证收紧准入规则后整体利润是否提升。实际上这正是数据驱动业务决策的完整闭环发现问题、拆解原因、提出假设、数据验证、策略落地、效果评估。把这个闭环写清楚开放题分数绝对在基准线以上。4.5 延伸思考数据治理类问题怎么答热搜词里还有数据治理项目调研方案和清单、数据治理这类关键词我猜是因为很多人在面试业务题时遇到数据质量差怎么办就卡壳了。这里给一个快速的答题框架。数据治理问题的回答可以从四个维度展开标准规范指标口径统一、字典管理、质量保障完整性、准确性、一致性、及时性、有效性、安全保障权限分级、脱敏规则、审计日志、组织流程owner机制、跨部门协作SOP。如果是面试题里遇到数据治理话题核心得分点是口径统一和质量监控。口径统一的意思是同一个指标在不同部门有不同定义比如用户数到底是注册用户、激活用户还是有借款行为的用户每次分析前先摆清楚。质量监控则是建设自动化巡检规则每天扫描核心表的数据量波动、空值率、枚举值分布异常第一时间发现数据管道问题。5. 复盘这份笔试题暴露的备考盲区与调整方案最后聊一点实在的——考完这份乐信2020校招数据笔试题之后我自己复盘出的备考盲区以及对应的调整建议。这部分内容放在任何一届校招都适用因为考察方向的变化真的不大。5.1 盲区一SQL停留在能写而不是会写我考前刷了不少SQL题但考场上写连续登录天数这类题时还是卡住了。问题出在哪呢我平时写SQL只要能跑出结果就行很少去分析还有没有更优雅的写法或者这个写法在数据量大时会不会慢。窗口函数平时也用但用的场景比较单一大多是ROW_NUMBER()取排名一旦遇到需要自关联窗口函数组合的题目思维就容易断。调整方案是刷SQL题不要只刷答案每道题至少想三种不同写法然后比较每种写法的可读性和执行效率。实际工作中SQL写得好不好不是看你会不会某个函数而是看你能不能从多种可行方案中挑出最合适的那一个。这种判断力和平时的刻意练习直接相关。5.2 盲区二统计知识停留在背公式而不是懂逻辑我的统计部分失分点主要在做区间估计和显著性判断题上。考完看解析才发现自己可以把置信区间的公式默写出来但对置信水平95%到底意味着什么理解得不够透彻。置信区间不是真实值有95%的概率落在这个区间里而是如果你重复抽样很多次每次构建一个置信区间大约有95%的区间会覆盖真实值。这两句话看起来像文字游戏但理解深度的差异会在你做判断题时体现出来。调整方案是复习统计知识时每学一个概念都问自己一个如果我要向不懂统计的业务方解释这个概念我该怎么讲。能把一个统计概念用大白话讲清楚才是真的理解了。5.3 盲区三业务题准备不够以为会分析就会答题我考前花了很多时间刷SQL和技术题开放业务题基本裸考。上了考场才发现业务题不是会分析就能答好的它更像一篇小作文需要清晰的结构、严谨的逻辑、明确的业务建议。我当时东写一点西写一点看起来覆盖了很多方面但没有主线分数应该不太理想。调整方案是考前至少准备三五个经典的业务分析案例把问题拆解—假设提出—验证方案—落地建议这个框架练熟。不需要背答案也不需要面面俱到关键是把框架内化成自己的思考方式考场上看到任何题目都能直接往框架里填内容。5.4 最后一个实操技巧给时间分配做预案三个小时的笔试我的实际经验是这么分配的选择题控制在40分钟内不会的先标记跳过千万不要在一道选择题上耗10分钟后面的SQL题一道可能值20分耗不起SQL题留60到70分钟也是最容易因为粗心丢分的部分写完至少留5分钟检查粒度对不对、是否漏了去重条件概率统计题40分钟足够重点是拿不准时画事件树或列公式最后的开放业务题留30到40分钟先列提纲再动笔保证结构完整。这套时间分配也分享给你考场上最大的敌人不是题目难而是时间分配不合理导致会的题没时间写。我自己考完整套题的一个体会是数据岗笔试真正筛选的不是谁背得更多而是谁在面对不确定问题时能快速建立分析框架并给出可执行的思路。SQL语法、统计公式、机器学习概念这些都是底层工具工具可以临时补充但分析思维和业务理解能力是需要长时间积累的。如果你正在备考建议把这份乐信2020试题当作一面镜子照一照自己的知识体系和思维框架还有哪些漏洞比单纯刷一百道题更有价值。