news 2026/9/1 8:53:10

掌阅数据分析岗笔试全解析:SQL窗口函数、业务思维与备考策略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
掌阅数据分析岗笔试全解析:SQL窗口函数、业务思维与备考策略

作为一个过来人,先简单交代一下背景。我去年参加了掌阅科技2023届秋招数据分析岗的笔试,整体感受可以总结为一句话:考察范围很全,但题型不算偏门,只要准备方向对,通过率并不低。这篇文章我会把笔试涉及的核心知识点、题型结构、常见真题回忆和备考心得一次性讲透,给准备投递掌阅或者其他互联网公司数据分析岗的同学一个可落地的参考。

先说结论:掌阅数据分析岗的笔试,考察重点集中在SQL窗口函数、Python数据处理、Excel实操、统计学假设检验、以及业务分析思维这几个维度上。笔试整体难度中等偏上,比纯工具型的数据分析笔试要更看业务理解,毕竟掌阅做的是数字阅读业务,用户行为分析、付费转化、内容推荐效果评估这些场景是绕不开的。

1. 笔试概况与考察结构拆解

1.1 岗位于考察侧的对应关系

很多同学拿到笔试通知后,第一反应是去刷LeetCode SQL题,这个方向没错,但只准备这一块远远不够。掌阅作为一家以数字阅读为核心业务的互联网公司,数据分析岗在实际工作中主要服务三类需求:用户增长分析、内容运营分析和商业变现分析。

所以笔试题目设置也基本围绕这三块业务场景展开。和纯金融、纯电商公司的数据分析笔试相比,掌阅的题目更侧重用户行为路径和内容消费特征,比如阅读时长分布、章节购买转化、书评互动分析等场景经常出现在题目里。这提醒我们,备考时不能只看通用数据分析题,还要对数字阅读产品的核心指标体系和业务逻辑有个基本认知。

1.2 题型结构与时间分配建议

从我参加的这场笔试来看,总共分成四个部分:逻辑推理与统计学选择题、SQL编程题、Python分析题、综合业务分析题。总时长120分钟,题目量大概在30道左右,其中选择题占一半,剩下是手写代码和业务分析。

120分钟看着不短,但实际做题时很容易在前面选择题上耗费太多时间。我的建议是:选择题每道控制在1.5到2分钟内,遇到算不清楚的统计题或逻辑题先标记跳过,把后面的大题保住。SQL和Python的编程题通常每题15到20分,分值占比高,而且题面本身不复杂,属于“花时间就能拿到分”的类型,必须优先保证完成。

一个很关键的信息是:掌阅的笔试系统支持本地IDE调试,但不支持在线运行代码。这意味着代码题只能靠纸面写逻辑,必须保证语法不出错。平时用惯了IDE自动补全的同学,建议提前练习手写代码,尤其是SQL窗口函数的完整写法,直接从SELECT开始一路写到ORDER BY,不能漏关键词。

1.3 阅卷标准与通过率参考

笔试通过率没有官方数据,但根据我身边同学的情况来看,约30%左右的人能进入面试环节。阅卷侧重点很明显:选择题拉分能力弱,因为正确答案固定,大家基本都能拿到70%以上的分数;真正拉开差距的是SQL题和业务分析题,尤其是业务题,没有标准答案,阅卷人会重点关注你的分析框架和结论可执行性。

我见过一些同学,SQL写得很好,但业务分析题只写了“建议提高留存”,没有结合具体场景和指标,这样的答案很难拿高分。后面我会详细讲业务分析题的正确打开方式,这部分值得重点看。

2. 核心知识考点全覆盖

2.1 SQL考点:窗口函数几乎必考

掌阅笔试的SQL题,窗口函数是绝对主力。常见考点包括ROW_NUMBER()排名、SUM() OVER()累计计算、LAG()/LEAD()取前后行数据,以及结合CASE WHEN的条件聚合。

我印象最深的一道题是:给定用户阅读记录表,字段包括user_id、chapter_id、read_start_time、read_end_time、book_id,要求计算每本书的连续阅读天数。这道题核心就是两步:先用DISTINCT去重每天的阅读记录,再用ROW_NUMBER()按用户和书分组编号,通过日期减去编号得到连续分组标志。如果考前没有专门练过“连续性问题”这类的SQL解法,现场很容易卡住。

另外,掌阅SQL题很看重数据粒度的理解。题目经常问“阅读时长”“付费金额”这类指标是否需要用DISTINCT去重,或者JOIN之后出现数据膨胀要如何处理。建议把聚合函数、GROUP BY的执行顺序、以及JOIN的数据膨胀逻辑这几个基础点彻底理清楚,比刷十道难题更实际。

2.2 Python考点:Pandas清洗与分析

Python部分主要靠Pandas,题目一般分两类:一类是DataFrame的筛选、分组、合并操作;另一类是简单的数据清洗,比如缺失值处理、重复值剔除、文本列规范整理。

举个例子,笔试中有一道题给了一个书籍评分表,包含user_id、book_id、score、comment_time四个字段,要求统计每个用户平均分最高的前三本书。这道题考察的是groupby、sort_values、head()的组合用法,难度不大,但现场手写时容易把sort_values的ascending参数搞反,或者忘记reset_index。这些细节往往是扣分点。

还有一道题涉及时间字段处理,要求把comment_time由字符串'2023/09/01 12:30:45'转成标准时间格式,并筛选出9月份的评论。这考察的是pd.to_datetime和dt.month的用法。如果平时习惯用Excel处理时间数据的同学,建议还是把Pandas的时间序列操作熟悉一下,笔试里基本必考。

2.3 Excel考点:数据透视表与函数组合

掌阅笔试中的Excel题没有要求现场操作,而是以选择题形式考察。重点覆盖数据透视表的使用场景、VLOOKUP与INDEX+MATCH的差异、以及条件统计函数SUMIFS/COUNTIFS的写法。

比较典型的一道题是:给出一个销售明细表,要求计算“北京地区、7月份、品类为电子书的销售额总和”,哪个函数组合能实现。答案自然是SUMIFS,但在选项里会出现用VLOOKUP拼接再求和的错误做法,考察的是你对Excel函数适用场景的判断。平时在B站或者ExcelHome上刷过类似题型的同学基本一眼就能看出答案。

另一个需要注意的点是数据透视表的布局理解。题目会给一张截图,问“行标签、列标签、数值区域的字段分别是什么”,一定要清晰理解数据透视表的四块区域(筛选、行、列、值)对数据分析结果的改变。如果你面试的岗位偏业务,Excel这部分最好做到满分水平,因为入职后Excel的使用频率往往比Python还高。

2.4 统计学考点:假设检验与AB实验

统计学选择题大概有5到8道,覆盖均值/中位数/标准差的理解、正态分布性质、中心极限定理、假设检验流程、p-value的定义、置信区间计算等。

最容易混淆的是p-value的含义,常见错误选项是“p-value表示原假设为真的概率”。正确理解是“在原假设为真的前提下,观察到当前样本或更极端样本的概率”。这个考点非常高频,不只在掌阅,很多公司笔试里都会出现,建议把它吃透。

AB实验也是掌阅笔试的热点。有一道题问:当实验组转化率显著高于对照组,但样本量很小,最需要考虑的问题是什么?答案应该是“样本量不足导致的随机波动”。这类题考的其实是统计常识拉满后的业务判断,并不需要做复杂的功效计算,但需要你了解显著性水平、统计功效和最小样本量之间的基本关系。

3. 笔试真题还原与解题思路

3.1 经典SQL题:用户连续阅读天数

题目描述:给定阅读记录表read_log,包含user_id、book_id、log_date三个字段,每行表示某用户在某天阅读了某本书。现在需要求每个用户连续阅读天数大于等于3天的记录中,最大的连续阅读天数。

这类题目我推荐用“日期减去行号”的解法:

WITH t1 AS ( SELECT user_id, book_id, log_date, ROW_NUMBER() OVER (PARTITION BY user_id, book_id ORDER BY log_date) AS rn FROM read_log ), t2 AS ( SELECT user_id, book_id, log_date, DATE_SUB(log_date, INTERVAL rn DAY) AS grp_date FROM t1 ), t3 AS ( SELECT user_id, book_id, grp_date, COUNT(*) AS continuous_days FROM t2 GROUP BY user_id, book_id, grp_date ) SELECT user_id, book_id, MAX(continuous_days) AS max_continuous_days FROM t3 WHERE continuous_days >= 3 GROUP BY user_id, book_id

解题思路拆成三步:先用ROW_NUMBER()给每个用户每本书的阅读日期排序,再用日期减去序号得到分组标识,最后按分组标识聚合统计天数。核心原理是“连续日期序列减序号后得到同一个值”,这是一个面试官偏爱的固定套路。如果每天有多条阅读记录,记得先对log_date去重,否则计数会偏大。

3.2 Python分析题:阅读行为分层分析

题目描述:给定用户表user_profile和付费表pay_record,要求用Python计算不同用户分层的付费率,用户分层规则是:用平均阅读时长大于30分钟记为“重度用户”,小于等于30分钟记为“轻度用户”。付费率定义:有付费记录的用户数除以总用户数。

常见写法如下:

import pandas as pd # 读取数据 user_profile = pd.read_csv('user_profile.csv') pay_record = pd.read_csv('pay_record.csv') # 用户分层 user_profile['user_level'] = user_profile['avg_read_minutes'].apply( lambda x: 'heavy' if x > 30 else 'light' ) # 标记是否付费 pay_user = pay_record['user_id'].drop_duplicates() user_profile['is_paid'] = user_profile['user_id'].isin(pay_user).astype(int) # 计算各层级的付费率 result = user_profile.groupby('user_level')['is_paid'].agg( total_users='count', paid_users='sum' ) result['pay_rate'] = result['paid_users'] / result['total_users'] print(result)

这里要注意两个坑:第一,付费用户必须去重,一个用户买多本书也只能算一次付费;第二,判断“是否付费”时用isin()比merge()更高效,也避免因一对多关系导致记录膨胀。笔试阅卷时,这两点都是评分点,写出了才算“熟悉业务的计算口径”。

3.3 业务分析题:书籍评分下降归因

题目描述:某书籍的评分从9.2分下降到了8.5分,请分析可能的原因,并给出需要看的指标和分析思路。

这类题没有固定答案,但高分答案一定具备“指标拆解+可执行分析方案”的特征。我的回答思路是这样的:

先把评分拆解成三个要素:打分人数结构、新打分用户画像、打分分数分布。评分下降可能来自三种情况:一是新增了大量低分评价,二是高权重老用户流失或修改了评分,三是低分评价的展示权重被调整(比如平台改版导致低星评论置顶)。针对这三种可能性,需要分别观看:新打分用户数的时间趋势、打分分数分布的直方图变化、打分用户的会员等级和阅读时长特征。

然后结合掌阅的业务场景做进一步假设:如果这本书近期有营销活动,导入了大量非精准用户,可能导致评价偏差;如果书籍内容有修改或章节调整,也可能影响读者体验。最终形成结论时不能只说“建议优化内容质量”,而是落到“通过监控每日评价分布、用户来源渠道和书籍内容改动日志来确定主要驱动因素,再做针对性干预”。这种回答思路就是数据分析岗位阅卷人最想看到的“数据驱动归因”逻辑。

4. 业务场景与项目经历的准备方法

4.1 笔试前的业务场景储备

掌阅笔试的部分选择题和业务分析题会直接结合阅读产品场景,比如:以下哪个指标最能衡量用户对平台的粘性?备选答案可能是DAU/MAU、次月留存率、人均使用时长、付费率。这道题其实是考“粘性”的定义,通常需要结合指标说明选择理由,比如次月留存率更能反映用户是否持续回来,而不是一次性访问。

因此,笔试前建议大家花一两个小时了解所投公司的核心业务指标,掌阅这类数字阅读平台重点关注四个方向:用户规模指标(MAU、DAU、新增用户数)、内容消费指标(阅读人数、人均阅读时长、书籍完读率)、付费收益指标(ARPPU、付费率、章节购买转化率)、内容生态指标(书评数、点评率、收藏分享率)。把这些指标的定义、计算口径和业务含义都提前理清,笔试中遇到类似选择题可以快速对应。

另外,可以留意一下行业报告里的常见分析维度,例如“用户访问时段分布”“不同书籍品类的阅读偏好差异”“新用户次日留存漏斗分析”。这些分析框架在笔试回答业务题时可以直接借用,会显得你比一般考生更懂行。

4.2 项目经历的复盘思路

除了客观题,掌阅的笔试偶尔会有一道开放性问题,例如:请结合你做过的项目,说明如何发现一个业务问题并通过数据分析找到解决方案。这种题目看起来像面试题,出现在笔试里主要是考察候选人的项目真实性和分析深度。

建议准备一个与你最常使用的数据分析工具相关的项目,重点描述以下四个环节:业务背景、分析思路、执行过程和结果落地。不要堆砌技术名词,要突出“为什么选这个指标”“数据中的异常带来了什么洞察”“最终给业务提了什么建议”这三个点。比如你做过一个电商用户复购分析项目,核心不能只讲用了RFM模型,而要讲清楚怎么划分用户层级、每个层级的复购率差异有多大、针对流失层采取了什么运营动作、动作后数据提升了多少。

实际上,我发现很多同学在回顾项目时,太注重“做了什么”而忽略“为什么做”和“怎么验证效果”,这在笔试开放题中等于拿不到核心分数。建议准备项目复盘时,先用自己的话写一份300字的“项目说明书”,包含背景、目标、动作、结果、复盘五个部分,笔试时不管遇到什么问法都有内容可以调动。

4.3 no-code工具的补充

除了SQL和Python,掌阅笔试中涉及的Excel工具题和商业分析思路,也提示我们日常工作中不能只依赖于代码。如果你平时用Excel比较多,建议系统学习数据透视表和常用函数的组合用法,这比临时学一个BI工具更稳。对于想要快速出图、做数据可视化的场景,可以选择一个BI工具把核心报表流程走一遍,碰到“分析后如何展示”的题目时,心里有体系。

不需要把数据分析工具链学得过于繁杂,关键是把一套核心流程练到熟:Excel做快速统计,SQL做数据提取,Python做深度清洗和建模。这三样组合已经能覆盖绝大多数互联网数据分析岗笔试和日常工作。

5. 经验复盘与避坑指南

5.1 备考时间规划建议

如果离笔试还有两周,建议按下面的节奏安排:第一周的前半段集中刷SQL窗口函数和连续性问题,后半段专攻Pandas数据清洗和分组聚合;第二周的前半段过一遍统计学核心概念,重点理解p-value和置信区间,后半段做两套完整模拟题,掐时间练手感和答题节奏。

如果只有三天准备时间,就不要贪多,直接围绕“SQL+业务题”突击。SQL可以只看窗口函数和分组聚合题型,业务题可以多看几篇AB实验和数据归因的案例。Excel和Python的部分可以用选择题快刷来代替大量练习,毕竟考试现场只要保持基本盘稳,把业务分析题答出框架,就已经能跑赢很多人。

5.2 实战中的时间管理失误点

我考试时犯过一个错误,在前面逻辑推理选择题上纠缠太久,导致最后的业务分析题只剩十分钟,草草写了两行收尾。事后复盘才发现,业务分析题是最能体现数据分析思维的部分,分值也最高,按“性价比”排序应该最先做。

建议做题顺序是:先快速扫描整张试卷,把业务题和SQL题标记为重点;然后按“业务分析 → SQL编程 → Python编程 → 统计选择 → 逻辑选择”的顺序执行。有些同学喜欢按顺序做,但笔试时间有限,先拿下高确定性的主观题,再回头啃硬骨头,才是更稳妥的策略。

5.3 几个容易被忽略的细节

手写SQL时,注意关键字和字段名不要写错,比如DATE_SUB函数的INTERVAL单位,以及GROUP BY后面必须包含所有非聚合字段。平时在IDE里写错了有报错提示,笔试现场没有自动纠错,这些小细节真的是分水岭。

Pandas代码里容易出现的问题包括:用了没有导包的函数、groupby后忘记重置索引、isin判断时数据类型不一致导致筛选结果为空。建议在草稿纸上先画出DataFrame的输入输出结构,再落笔写代码,能明显降低错误率。

还有一个心态层面的事:笔试只是筛选入口,不要因为某一道题没写完就慌了神。掌阅这种规模的笔试,通常看总分和核心题得分,一道选择题的影响非常有限。稳住心态,尽可能把能拿的分都拿到,才是最重要的。

6. 写在最后的一点经验

笔试前几天的晚上,我把SQL窗口函数和Pandas常用操作的笔记翻了一遍,然后把掌阅App打开,以“普通用户”的视角体验了一遍完整的阅读流程。这一体验让我在业务分析题里多了很多产品体感。比如看到“书籍评分为何下降”这道题时,我能联想到用户进入书籍详情页后看到的评价排序、推荐位投放、甚至章节末的“下一章”引导等因素。这种对业务场景的真实感知,是单靠刷题刷不出来的。

数据分析岗位的笔试,本质上考的不是你记了多少函数,而是你能否用数据理解业务、发现问题、提供决策依据。掌阅的题目设置恰好能体现这个筛选逻辑。如果你正在准备互联网公司的数据分析岗笔试,建议在刷题之外,多花一点时间思考自己心仪公司的产品逻辑和核心指标体系,把业务思维融入答题过程,这比多背十道题更有用。

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

FPGA实战:I2S音频接口的VHDL实现与调试要点

简介:本资源是一套基于VHDL实现I2S数字音频接口的完整工程集合,面向FPGA开发工程师、嵌入式音频系统设计者及数字电路课程学习者,解决数字音频设备间高精度、低延迟音频数据传输的硬件接口设计问题。压缩包共79个文件,涵盖42个VHD…

作者头像 李华
网站建设 2026/9/1 8:49:40

基于大数据的社区高血压人群数据与预测系统源码+文档

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

作者头像 李华
网站建设 2026/9/1 8:48:48

Sunshine 游戏串流实战:书房 PC 的游戏库如何跑满家里每块屏幕

Sunshine 游戏串流实战:书房 PC 的游戏库如何跑满家里每块屏幕 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 晚上九点,你瘫在客厅沙发上,电视…

作者头像 李华
网站建设 2026/9/1 8:45:51

内网穿透技术对比:神卓N600与Frp的实战应用与选择指南

在开发测试、远程办公或搭建个人服务时,我们常常需要从外网访问位于公司或家庭路由器后的内网设备。传统的方案如端口映射受限于运营商和路由器,而自建内网穿透服务又需要一定的技术门槛。提到内网穿透,很多开发者第一时间会想到 Frp &…

作者头像 李华
网站建设 2026/9/1 8:45:08

2026年AI辅助学习工具场景功能梳理

一、前言 随着人工智能技术的迭代,各类智能工具逐渐渗透到日常学习环节中,在资料整理、思路校验和知识归档等方面提供了新的辅助方式。不同工具的功能侧重点各有差异,了解其核心特点有助于根据自身任务进行合理选择。本文基于个人使用体验&am…

作者头像 李华