ARTICLE DETAIL

资讯详情

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

吉比特数据分析师笔试题解析:SQL窗口函数、统计与游戏指标全攻略

吉比特数据分析师笔试题解析:SQL窗口函数、统计与游戏指标全攻略 1. 笔试整体设计与考察逻辑拆解吉比特的游戏产品大家都不陌生从《问道》到《不思议迷宫》再到后来口碑不错的《最强蜗牛》这家公司一向以小而精的研运一体模式著称。正是这种模式决定了它对数据分析师的要求和对纯流量型互联网公司不太一样——不仅要懂数据还要真的懂游戏业务。我拿到这份吉比特2018秋招数据分析岗位B卷的时候第一反应是这份卷子的出题人大概率是业务线的老兵而不是HR随便从题库里拉的一套通用题。整张卷子的考察结构非常有层次大致可以分为四个维度基础统计与概率论功底占比约25%SQL取数与数据处理能力占比约30%业务指标理解与分析框架占比约30%综合分析题考察业务落地能力占比约15%这里有个很重要的判断这套卷子没有刻意去考Python机器学习也没有考深度学习、神经网络这些看起来很前沿但实际工作中用得不多的高大上内容。这说明吉比特招聘数据分析岗的核心诉求非常明确——来了要能直接干活要能自己取数、自己搭报表、自己把数据变成业务决策的支撑而不是来搞算法研究。再看B卷本身。按业内常规操作同一场笔试往往会准备A、B两套卷子防止泄题也会根据投递方向比如游戏运营数据分析、用户研究数据分析、商业化数据分析做微调。B卷和A卷的差异一般不会体现在知识框架上更多是题目场景和数据数值的替换整体难度会刻意做到等值。但B卷通常会在最后的综合分析题上换一个更偏业务场景的案例这也是我们后面要重点复盘的部分。另外一个值得注意的细节是这份卷子没有纯粹的智力题环节。很多公司笔试喜欢放几道行测题、找规律题但吉比特这份卷子几乎全部围绕数据专业能力展开。这也给了我们一个明确信号——游戏行业的数据分析岗笔试重心已经从筛聪明人转向筛干活的人。2. 核心知识点解析与答题要点2.1 统计基础题看似送分实则埋了不少坑统计部分在数据分析笔试里永远是最先出现、也最容易被轻视的板块。拿到手一看题目可能感觉都是熟悉的面孔均值、中位数、标准差、正态分布、假设检验、概率计算。但实际批改起来这部分往往是区分度最大的一块。原因很简单——大家都会做标准题但很多人一做变形题就露馅。先说一个B卷里大概率会出现的经典题给出一组玩家每日游戏时长数据数据呈现明显的右偏分布然后问用均值还是中位数描述典型玩家的游戏时长更合理。很多基础不牢的同学会直接选均值理由是教材上都说均值是集中趋势最常用的度量。但如果数据右偏均值会被少数重度玩家拉高这时候中位数才能代表绝大多数玩家的真实状态。这里我一般建议用最朴素的方式来理解均值要求数据分布对称或近似对称时才经济有效中位数对极端值不敏感适合偏态分布众数则适合定类数据。游戏数据里付费金额、在线时长、游戏局数这些核心指标几乎没有一个是正态分布的全是典型的长尾分布。所以遇到这类题第一反应不应该是套公式而是先想清楚数据长什么样。还有一个高概率出现的点是条件概率和贝叶斯公式的基础应用。比如某游戏内一个付费活动历史数据显示活跃玩家参加活动的概率是15%非活跃玩家参加活动的概率只有3%整体活跃玩家占比40%问抽到一个参加了活动的玩家他是活跃玩家的概率是多少。很多人在这一步容易绕晕。其实贝叶斯的本质就是把已知的先后顺序重新理解一遍先定义事件A表示玩家是活跃用户B表示玩家参加了活动。已知P(A)0.4P(B|A)0.15P(B|非A)0.03。要求的P(A|B)计算公式是0.4乘0.15除以0.4乘0.15加上0.6乘0.03算出来约等于0.769。这个逻辑链不复杂但考场上一紧张就很容易把分子分母搞反或者忘记算全概率公式。关于假设检验和p值这块几乎是游戏公司笔试的必考内容。需要建立一个核心认知p值不是原假设为真的概率而是在原假设为真的前提下出现当前样本或更极端样本的概率。如果在卷子上遇到p值为0.03能否说明实验组比对照组好3%这种判断题要毫不犹豫地画叉。p值衡量的是统计显著性不是效应大小更不能直接等同于业务提升幅度。2.2 SQL题窗口函数和多表关联是拿分关键SQL在数据分析笔试里的地位怎么强调都不过分。可以这么说如果你的SQL没过关哪怕前面统计题全对后面业务题答得再漂亮也很难进入面试环节。因为数据分析师这个岗位SQL是每天都要用的基本功笔试不筛掉SQL不过关的人入职之后双方都痛苦。2018年那会儿很多公司的SQL考察还停留在SELECT、WHERE、JOIN、GROUP BY这个层面。但吉比特这份B卷的SQL题已经明显在往窗口函数上靠了。如果你准备的是现在去面试窗口函数更是绕不开的重点基本可以认定为必考内容。最常见的考察场景是分组TopN。比如有一张玩家付费流水表字段包含日期、玩家ID、充值金额要找出每个自然月充值金额最高的前10名玩家。不用窗口函数的写法是先按月份和玩家ID做关联子查询数出比自己充值金额高的玩家数量然后过滤数量小于10的。这种写法逻辑上没错但性能非常差而且子查询嵌套复杂考场上一旦紧张就容易写出逻辑漏洞。用窗口函数就干净利落得多SELECT 月份, 玩家ID, 充值金额 FROM ( SELECT DATE_FORMAT(充值时间, %Y-%m) AS 月份, 玩家ID, SUM(充值金额) AS 充值金额, ROW_NUMBER() OVER(PARTITION BY DATE_FORMAT(充值时间, %Y-%m) ORDER BY SUM(充值金额) DESC) AS rn FROM 充值表 GROUP BY DATE_FORMAT(充值时间, %Y-%m), 玩家ID ) t WHERE rn 10这里有个细节要特别提醒先GROUP BY再开窗和先开窗再GROUP BY结果完全不一样。像上面这种写法先在子查询里按月份玩家粒度聚合成每个玩家每月的总充值金额然后在这个基础上开窗排名才是正确顺序。另外SQL题还有一个高频考点是留存率的计算。留存率的定义是某日新增的玩家在第N天还有多少比例的人回到游戏。笔试里通常会让你用一张用户登录表含日期和用户ID算7日留存。这里的核心陷阱在于所谓7日留存指的是第7天还回来登录的比例而不是7天内任意一天登录过的比例。这两者差异很大很多人一看7日内就顺手用了DISTINCT加日期范围结果算出来虚高在面试复盘环节被追问两句就露馅。正确写法是先用日期差精确判断用户在第7天是否有登录记录再用COUNT(DISTINCT)严格去重。这个场景下DISTINCT是必须的因为一张原始登录流水表里同一个用户同一天有多条记录的情况太常见了。2.3 Python与数据处理能力pandas操作要熟练到肌肉记忆吉比特B卷里Python的占比不算特别高但一定会有。出题风格偏实用——不是让你手写机器学习算法而是考察你用pandas做数据处理的能力。我见过最典型的考察方式是给你一个包含缺失值的玩家信息表要求写出清洗过程。这个题实际上是在考察两点一是你对pandas常用函数的熟练度二是你是否具备先观察、再处理的工程意识。一个比较踩坑的地方是处理缺失值。很多人在笔试里一看到NaN就直接fillna(0)或者直接dropna()把行删了。但真实业务场景下缺失值不能这样无脑处理。比如玩家的注册渠道字段为空和充值金额字段为空处理逻辑完全不同。前者有实际的业务含义可能是渠道对接漏传后者可能意味着用户从未充值直接填0反而合理。笔试中如果题目给出了上下文一定要结合上下文回答如果没给也要在答案里体现你的思考过程。再说apply函数。笔试里很爱考一行代码实现复杂逻辑比如把玩家的最后登录时间转成距今N天未登录再映射成流失、沉默、活跃、高频四个等级。这类题在考察lambda表达式和条件判断的熟练度。如果对pandas不熟现场写起来会很紧张容易写出又长又绕的循环。实际上用np.select一条语句就能搞定import numpy as np import pandas as pd conditions [ df[未登录天数] 30, df[未登录天数] 14, df[未登录天数] 3 ] choices [流失, 沉默, 沉默] df[用户状态] np.select(conditions, choices, default活跃)这里要注意np.select里条件的顺序前面的条件优先匹配所以要从最宽松到最严格或者最严格到最宽松排列好保证逻辑不重叠。3. 游戏行业的数据分析特色考点3.1 核心指标体系DAU、留存、LTV和ARPU不能只背缩写吉比特作为游戏公司笔试里最核心的业务题一定是围绕游戏运营指标展开的。这些指标如果你只停留在我知道这个缩写是什么意思的程度是远远不够的。笔试的综合性分析题答案的优劣往往不在于你列出了几个指标而在于你能不能指出指标之间的联动关系。DAU日活跃用户数是考察起点但真正的高阶考法是基于DAU拆解。DAU 昨日留存用户 今日新增用户 今日回流用户。这三个部分对应的业务动作完全不同昨日留存考的是产品粘性今日新增考的是买量投放效果今日回流考的是运营活动召回能力。如果你在卷子里只写DAU是日活跃用户数这题基本就拿不到分了。留存率更要理解到位。游戏行业特别看重次日留存、7日留存和30日留存每个时间窗口代表的产品信号完全不同。次日留存反映的是新手引导和第一印象7日留存反映的是核心玩法循环是否成立30日留存反映的是游戏的内容消耗速度和新版本更新节奏是否合理。B卷里如果给你一组留存数据让你分析问题切入点就应该按这个逻辑去找。LTV用户生命周期价值和ARPU每用户平均收入的区别也是必考内容。一句话总结ARPU是摊到所有用户头上的收入LTV是一个用户从进入到流失整个生命周期贡献的收入。做买量决策时看LTV做活动效果评估时看ARPU这俩混用会直接导致决策方向跑偏。3.2 版本更新效果评估从数据对比到结论落地游戏公司数据分析日常工作中最常见的一个场景就是版本更新效果评估。吉比特的笔试出这类题的概率极高因为这就是数据分析师入职后马上要干的活。假设游戏做了一次战斗数值平衡性调整主要改动是削弱了某个强势职业的伤害。给出的数据是更新前后各一周的活跃度、付费额、关卡通过率、玩家投诉量。问你怎么评估这次更新的效果。这种题没有标准答案但答题框架有优劣之分。得高分的答题套路通常是三步走先做前后对比不能只看平均值要看分布。把更新前后两周的DAU、付费率、ARPU、次日留存率做成趋势图观察是否有明显拐点。这里要注意版本更新常常伴随新活动数据波动很可能不是单一因素导致的需要尽量剔除干扰。再做玩家分层分析。把玩家按职业、段位、充值区间分群分别看不同群组的活跃和付费变化。数值削弱最怕的是误伤重度付费玩家如果削弱职业的高付费玩家流失率显著上升这个版本的数据就是负面的。最后给出建议。数据好给出放量推广的建议数据差给出回滚或热修复的建议。最关键的是不要光给结论要给出后续监控指标和验证方案体现闭环思维。3.3 商业化分析不是所有付费指标都能用同一个套路看商业化分析是游戏数据分析里含金量比较高的方向笔试中的综合分析题如果涉及怎么提升收入通常就是在考察这个方向。要理解游戏直播收入的逻辑核心是弄明白谁在付费和为什么付费。基础指标是付费率、ARPPU每付费用户平均收入和首充率。但从分析框架的角度更推荐按付费用户生命周期来拆新增用户首充转化关键动作是否在7天内完成首充首充后的二次付费关键动作首充后是否继续付费中R玩家的付费深度关键动作月充值额是否稳定大R玩家的留存与唤醒关键动作VIP等级保护专属运营如果笔试题目问某游戏收入连续两个月下滑请分析原因不要只写付费率下降了这种废话。要往上游拆付费率 付费用户数 / 活跃用户数分子降了说明付费转化出问题分母降了说明用户盘子缩了。分子分母同时降就要进一步区分是新增用户质量变差投放渠道问题还是老用户付费意愿下降版本内容消耗完还是外部竞品抢量市场环境变化——三条线索对应完全不同的解决方案。4. 常见失分点与备考建议4.1 时间分配与做题顺序的把握说实话吉比特这份B卷的题量不算特别大正常一个半小时的笔试时间熟练的人60到75分钟基本能做完。但每年都会有相当一部分人做不完核心原因不是能力不够是前面小题花的时间太多导致后面的综合分析题没时间写。这里有个经验之道数据分析笔试的得分效率排序一般是SQL题 统计基础题 业务分析题 综合分析题。SQL题会就会不会就不会不存在多想想就能想出来的情况所以遇到SQL卡壳先跳过去。统计题里概率计算和假设检验属于算对就有分的题目值得花时间仔细算。业务分析题和综合分析题是开放性答案按照框架写就有基本分但拿高分需要时间打磨细节所以不能压缩到只剩10分钟。建议的时间分配是统计基础题30分钟SQL题30分钟业务分析题15分钟综合分析题15分钟。最后留5到10分钟检查。4.2 那些笔试成绩不错的人都有哪些好习惯结合我自己带新人和做面试官的经验笔试能拿高分的人通常有几个共性卷面答案里会把关键假设写清楚。比如计算留存率时明确说明这里的第7日留存定义为新增后第7天有登录行为的用户/新增用户总数这个动作能避免很多无谓的失分。计算过程完整不是只写一个答案。数据岗笔试不是数学考试批改人更关注你的思考链路是否清晰而不是最终数值。哪怕算错了如果过程写得清楚还能拿一部分过程分。SQL写法规范缩进清晰关键函数有注释。这里不是说笔试要写开发级注释而是要在必要的逻辑拐点写一句这里用窗口函数取每个月的Top10这种旁白非常加分。业务分析题按定义指标—拆分影响面—定位原因—给出建议—设计监控五段式来答避免想到哪儿写到哪儿。4.3 备考工具建议和资料推荐如果你正在准备游戏行业的数分岗笔试除了刷题实操是必须的。光看不练上了考场手是生的。几个备考建议供参考SQL练习直接用在线评测平台用LeetCode数据库题目的中等难度反复练窗口函数专题一定要刷熟。统计基础不用死磕教科书重点是把假设检验、置信区间、贝叶斯条件概率这几块吃透。推荐《面向数据科学家的实用统计学》这本书讲得比国内教材容易懂案例也更贴近业务。业务分析题可以多看行业分析和游戏数据分析的公开分享。B站、知乎上有不少游戏数据分析师分享指标体系搭建和案例分析比看理论书实用。Python数据处理自己找一份真实的游戏数据或公开的数据集练手比如Kaggle上的玩家行为数据集把缺失值处理、分组聚合、透视表这些操作做到闭着眼睛能写。4.4 从笔试反推岗位的真实工作聊到最后我想说一个更有价值的观察角度。一份笔试考卷本质上就是这个岗位日常工作的缩影。吉比特B卷重点考统计、SQL、游戏业务指标和版本分析这也在很大程度上回答了吉比特数据分析师日常到底在做什么——不是做机器学习模型不是写算法论文是取数、做报表、分析版本数据、为运营和市场团队提供决策依据。所以备考的思路也要反过来不要一头扎进机器学习模型的深坑。先把SQL练熟把游戏的核心指标理解透把统计基础打牢再用Python工具链把日常分析的效率提上去这套组合拳打下来笔试基本就稳了。文章的最后分享一个我做笔试复盘时的个人习惯每次笔试结束不管结果如何我都会把所有不会的题和模糊的题整理到一个专门的文档里每个题后面附上一句话的错因。这场2018年的秋招卷放到今天来看很多题目在形式上可能已经变了但考察的知识内核几乎没变。基础的数据处理能力、清晰的业务思维、严谨的统计功底这三样东西在任何一年都是数据分析岗笔试的通行证。
返回列表