数据分析笔试准备
type
Post
status
Published
date
Mar 28, 2026
slug
data-analysis-prep
summary
L
tags
工具
category
学习思考
icon
password
Comment
SQL语法pp
SELECT DISTINCT
SELECT DISTINCT 语句用于返回唯一不同的值。

WHERE


AND & OR
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。


ORDER BY
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。

INSERT INTO


UPDATE

DELETE

SELECT TOP

LIKE
pattern需要使用regex,通配符


IN
别名




JOIN
INNER JOIN 返回两个表中满足连接条件的记录(交集)
LEFT JOIN 返回左表中的所有记录,即使右表中没有匹配的记录(保留左表)

RIGHT JOIN 返回右表中的所有记录,即使左表中没有匹配的记录(保留右表)
FULL OUTER JOIN 返回两个表的并集,包含匹配和不匹配的记录
CROSS JOIN 返回两个表的笛卡尔积,每条左表记录与每条右表记录进行组合
SELF JOIN 将一个表与自身连接
NATURAL JOIN 基于同名字段自动匹配连接的表
UNION
SELECT INTO

CREATE DATABASE
CREATE TABLE
Constraints(约束)
看CPSC304教程
DEFAULT
CREATE INDEX
您可以在表中创建索引,以便更加快速高效地查询数据。
用户无法看到索引,它们只能被用来加速搜索/查询。
注释:更新一个包含索引的表需要比更新一个没有索引的表花费更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
DROP
ALTER
如需在表中添加列,请使用下面的语法:
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
CREATE VIEW(视图)
Date函数
MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:
- DATE - 格式:YYYY-MM-DD
- DATETIME - 格式:YYYY-MM-DD HH:MM:SS
- TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS
- YEAR - 格式:YYYY 或 YY

NULL
GROUP BY
HAVING
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
HAVING 子句可以让我们筛选分组后的各组数据。
EXISTS
EXISTS 运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 False。
UCASE()
UCASE() 函数把字段的值转换为大写。
MID()
MID() 函数用于从文本字段中提取字符。

LEN()
LEN() 函数返回文本字段中值的长度。

ROUND()
ROUND() 函数用于把数值字段舍入为指定的小数位数。

拼多多
SQL
给定表结构
1)用户注册表 user_register
字段名 | 类型 | 含义 |
user_id | bigint | 用户ID |
register_date | date | 注册日期 |
channel | varchar | 注册渠道 |
2)用户登录表 user_login
字段名 | 类型 | 含义 |
user_id | bigint | 用户ID |
login_date | date | 登录日期 |
说明:同一个用户一天可能登录多次,表里可能有重复(user_id, login_date)记录。
3)订单表 orders
字段名 | 类型 | 含义 |
order_id | bigint | 订单ID |
user_id | bigint | 用户ID |
order_date | date | 下单日期 |
gmv | decimal(10,2) | 订单金额 |
category_id | int | 类目ID |
is_paid | tinyint | 是否支付,1=已支付,0=未支付 |
4)类目表 category_dim
字段名 | 类型 | 含义 |
category_id | int | 类目ID |
category_name | varchar | 类目名称 |
题目1
第 1 题
统计 2026-03-01 到 2026-03-07 每天的:
- 新增用户数
new_users
- DAU
dau
输出字段:
dt, new_users, dau要求:
new_users来自user_register
dau来自user_login
- 注意去重,同一用户同一天多次登录只算 1 个 DAU
- 按日期升序输出
答案
第 2 题
- 题型:SQL
- 难度:★★☆
- 来源标签:面经还原
请写 SQL:
统计 2026-03-01 到 2026-03-07 每天注册用户的 次日留存率。
定义:
- 某天注册的用户,在 注册后第 2 天 登录,则算次日留存
- 次日留存率 = 次日留存用户数 / 当日注册用户数
输出字段:
register_date, register_cnt, retention_cnt, retention_rate要求:
- 去重处理
retention_rate保留 4 位小数
答案
第 3 题
- 题型:SQL
- 难度:★★☆
- 来源标签:高频仿真
请写 SQL:
统计 截至 2026-03-07(含当天),每个用户近 7 天的:
- 登录天数
login_days_7d
- 支付订单数
paid_order_cnt_7d
- 支付 GMV
paid_gmv_7d
输出字段:
user_id, login_days_7d, paid_order_cnt_7d, paid_gmv_7d要求:
- 近 7 天范围:
2026-03-01 ~ 2026-03-07
- 登录按“天”去重,不按次数
- 订单仅统计
is_paid = 1
答案
第 4 题
- 题型:SQL
- 难度:★★★
- 来源标签:拼多多风格综合改编
请写 SQL:
统计 2026-03-07 当天,各类目支付 GMV 前 3 名的类目。
输出字段:
category_id, category_name, total_gmv, rk要求:
- 只统计
is_paid = 1
- 用
rank()或dense_rank()均可,但你要写清楚你用的是哪一个
- 按
rk升序、total_gmv降序输出
答案
第 5 题
- 题型:统计基础
- 难度:★★☆
- 来源标签:高频仿真
某电商平台做了一个简单抽样,抽取了 5 个用户的下单金额(单位:元):
20, 30, 30, 40, 80请回答:
- 样本均值(sample mean)是多少?
- 样本中位数(median)是多少?
- 极差(range)是多少?
- 如果把 80 改成 50,哪一个指标变化最大:均值 / 中位数 / 极差?请说明原因。
- 从这题你能看出:均值和中位数谁更容易受极端值影响?
题目2(类似题目1)
第 1 题
题意:统计
2026-03-08 ~ 2026-03-14 每天的新增用户数和 DAU。标准答案
重点讲解
这题的核心不是语法,而是先分开算,再按日期拼。
- 新增来自
user_register
- DAU 来自
user_login
- 两张明细表不能直接乱 join
- DAU 一定是
count(distinct user_id),因为同一用户同一天可能登录多次
高频坑:
- 把注册表和登录表直接 join,导致重复计数
- 忘记
distinct
- 某天没数据时没有补 0
第 2 题
题意:统计
2026-03-08 ~ 2026-03-14 每天注册用户的次日留存率。标准答案
重点讲解
次日留存 = T 日注册,T+1 日登录。
所以这题 join 的关键是:
- 用
user_id关联同一个用户
- 用
login_date = register_date + 1 day判断是否次日登录
高频坑:
- 写成
register_date = login_date,这不是次日留存
- 没对登录表去重,导致留存人数被重复算
- 分子分母口径不一致
你要记住一个固定模板:
第 3 题
题意:统计截至
2026-03-14,每个用户近 7 天登录天数、支付订单数、支付 GMV。标准答案
重点讲解
这里考 3 个不同口径:
- 登录天数:按天去重,所以是
count(distinct login_date)
- 支付订单数:按订单条数,所以是
count(order_id)
- 支付 GMV:按金额求和,所以是
sum(gmv)
高频坑:
- 把登录次数当成登录天数
- 订单数错写成
count(distinct order_date)
- 忘记过滤
is_paid = 1
这题的重点就是:看到“天数 / 用户数 / 订单数 / 金额”,脑子里立刻切换口径。
第 4 题
题意:统计
2026-03-14 当天,各类目支付 GMV 前 2 名类目。标准答案
重点讲解
这题要先按类目聚合出 GMV,再做排名。
为什么不能直接在原表上 rank?
因为题目排名的是“类目 GMV”,不是订单行。
所以顺序必须是:
- 先
group by category_id
- 再
sum(gmv)
- 再窗口函数排名
row_number / rank / dense_rank 区别:row_number():并列也强行分 1,2,3
rank():并列后跳号,例如 1,1,3
dense_rank():并列后不跳号,例如 1,1,2
这题我用
dense_rank(),因为更适合处理并列 topN。第 5 题
样本:
10, 20, 20, 30, 40, 120标准答案
- 样本均值
10+20+20+30+40+1206=2406=40\frac{10+20+20+30+40+120}{6}=\frac{240}{6}=40
610+20+20+30+40+120=6240=40
- 中位数
排序后为:
10, 20, 20, 30, 40, 120
偶数个数,中位数取中间两个数平均:
20+302=25\frac{20+30}{2}=25
220+30=25
- 极差
120−10=110120-10=110
120−10=110
- 如果把 120 改成 60:
新样本:
10, 20, 20, 30, 40, 60- 新均值:
10+20+20+30+40+606=1806=30\frac{10+20+20+30+40+60}{6}=\frac{180}{6}=30
610+20+20+30+40+60=6180=30
- 新中位数:
20+302=25\frac{20+30}{2}=25
220+30=25
- 新极差:
60−10=5060-10=50
60−10=50
变化:
- 均值:40 → 30,下降 10
- 中位数:25 → 25,不变
- 极差:110 → 50,下降 60
变化最大的是极差。
- 说明了什么均值比中位数更容易受极端值影响;极差对极端值尤其敏感。
重点讲解
这题本质在考你对“异常值”的直觉:
- 均值:用到了所有数值,容易被极端值拉动
- 中位数:只看中间位置,抗极端值能力更强
- 极差:只看最大值和最小值,对极端值最敏感
第 6 题
题意:统计
2026-03-14 每个渠道的新增用户数、当日登录用户数、当日登录率。标准答案
重点讲解
这题的本质是一个转化题:
- 分母:当日该渠道新增用户
- 分子:这些新增用户里,当日也登录了的人
所以要以
new_user 为主表,再去连登录表。高频坑:
- 分母错写成全渠道注册用户
- 分子没限定“这些新增用户里”
- 登录表没去重
你要记住:
做转化题时,先确定分母人群,再看分母人群里有多少完成下一步。
Day 1 这 6 题你真正要掌握的 6 个模板
模板 1:按天统计
模板 2:留存
模板 3:近 7 天统计
模板 4:条件过滤
模板 5:先聚合再排名
模板 6:转化题
题目3(Day2)
第 1 题
- 题型:SQL
- 难度:★★☆
- 来源标签:拼多多风格高频仿真
统计 2026-03-14 当天各渠道的:
- 注册用户数
- 注册用户中当日登录人数
- 注册用户中当日下单人数
- 注册用户中当日支付人数
输出字段:
channel, register_cnt, login_cnt, order_cnt, paid_cnt要求:
- 下单来自
orders
- 支付定义为
is_paid = 1
- 所有人数都按用户去重
答案
各渠道:注册人数、当日登录人数、当日下单人数、当日支付人数
重点:这是一道标准漏斗题,基准人群是“当天注册用户”。
第 2 题
- 题型:SQL
- 难度:★★★
- 来源标签:面经还原
统计 2026-03-08 到 2026-03-14 每个渠道的:
- 新增人数
- 次日留存人数
- 次日留存率
输出字段:
channel, register_cnt, retention_cnt, retention_rate答案
每个渠道:新增人数、次日留存人数、次日留存率
重点:这里是“按渠道整体统计”,不是“先按天再汇总”。如果题目要求按“渠道+注册日”,就得把
register_date 也放进 group by。第 3 题
统计近 7 天内有 2 天下单及以上 的用户数。
要求:
- 时间范围:
2026-03-08 ~ 2026-03-14
- 只统计支付订单
is_paid = 1
- 同一天多笔订单算 1 个“下单日”
这是在考你:
- 去重
- group by
- having
答案
- 题目要的是“2 天下单及以上”,不是“2 笔订单及以上”
- 所以必须
count(distinct order_date)
这题专门考
having。第 4 题
- 题型:SQL
- 难度:★★★
- 来源标签:综合改编
统计 2026-03-14 当天每个类目下支付 GMV 最高的用户。
输出字段:
category_id, user_id, user_gmv, rk要求:
- 只统计支付订单
- 用窗口函数取每个类目的 top1 用户
答案
每个类目下支付 GMV 最高的用户
重点:
- 先按
category_id, user_id聚合出用户在类目下的 GMV
- 再在每个类目内部做分组排名:
partition by category_id
第 5 题
- 题型:统计基础
- 难度:★★☆
- 来源标签:高频仿真
某活动 A 组 1000 人,转化 120 人;B 组 1000 人,转化 135 人。
请回答:
- 两组转化率分别是多少?
- B 组比 A 组绝对提升多少?
- B 组比 A 组相对提升多少?
- 只看这组数据,能不能直接说 B 一定显著更优?为什么?
答案
A 组 1000 人转化 120,B 组 1000 人转化 135
标准答案
- A 转化率:
120/1000=12%120/1000=12\%
120/1000=12%
B 转化率:
135/1000=13.5%135/1000=13.5\%
135/1000=13.5%
- 绝对提升:
13.5%−12%=1.5%13.5\%-12\%=1.5\%
13.5%−12%=1.5%
- 相对提升:
(13.5%−12%)/12%=12.5%(13.5\%-12\%) / 12\% = 12.5\%
(13.5%−12%)/12%=12.5%
- 能不能直接说 B 一定显著更优?不能。
因为“数值更高”不等于“统计显著”。还需要进一步做显著性检验,例如:
- 两比例 z 检验
- 卡方检验
- 看 p-value / 置信区间
重点:
面试/笔试里特别爱问这个坑:
“提升了,不代表显著提升了。”
Day6
Q1
请解释下面 4 个概念,并说明它们之间的区别:
- 标准差(standard deviation)
- 标准误(standard error)
- 置信区间(confidence interval)
- 检验功效(power)
要求:
- 每个概念都不能只写定义
- 必须补一句“它在 A/B Test 或业务分析中有什么用”
###
Q2
某实验测得:
- 实验组相对对照组支付转化率 uplift = +3%
- 95% 置信区间为 [-1%, +7%]
请回答:
- 这个结果在统计上能不能说显著?
- 为什么?
- 如果业务方只看到“中心估计是 +3%”就想上线,你会怎么回应?
- 如果 95% 置信区间改成 [+1%, +5%],你的结论会怎么变化?
Q3
请判断下列业务指标更可能接近哪种分布,并说明原因:
- 单个用户一天是否下单
- 某商品一天的订单数
- 大量用户平均客单价的抽样均值
- 用户从注册到首单的等待天数
- 抛硬币 100 次正面朝上的次数
可选方向包括但不限于:
- 伯努利分布
- 二项分布
- 泊松分布
- 正态分布
- 其他你认为更合理的近似分布
Q4
某产品经理做了一个小实验,结论是:
“新版页面转化率更高,所以应该全量上线。”
你进一步了解后发现:
- 实验只跑了半天
- 样本主要来自午间高活跃用户
- iOS 用户占比明显高于 Android
- 新客比例高于对照组
- 总样本量很小
请回答:
- 这里可能有哪些偏差或问题?
- 哪些属于抽样偏差,哪些属于实验设计问题?
- 如果你是数据分析师,你会如何修正这个实验?
- 这些问题为什么会影响结论可信度?
##
Q5
某 A/B 实验当前结果如下:
- A 组转化率:10.0%
- B 组转化率:10.4%
- p-value = 0.14
业务方说:“既然 B 组更高,先上线吧。”
请回答:
- p-value = 0.14 说明什么?
- 这里“不显著”可能有哪些原因?
- 什么叫检验功效(power)不足?
- 在什么情况下,真实 uplift 存在,但实验仍然可能测不出来?
- 面对这种情况,你更倾向于补样本、延长周期、换指标,还是直接下结论?为什么?
Q6
请回答:
- QQ 图主要用来判断什么?
- 如果一个指标分布右偏(right-skewed),通常意味着什么?
- 高峰度(high kurtosis)通常意味着什么?
- 为什么像 GMV、客单价这类指标,在实际业务中常常不是标准正态分布?
- 如果数据分布偏得很厉害,你在做分析时会更谨慎看哪些问题?
##
Q7
某次补贴策略实验结果:
- 下单转化率提升 0.2%
- p-value = 0.01
- 退款率略升
- 单均补贴成本明显升高
- 7 日复购没有改善
请回答:
- 为什么这个结果“统计上显著”但不一定“业务上值得做”?
- 如果你是分析师,你会怎么和业务方解释“显著不等于值得上线”?
- 你会补看哪些指标来综合判断?
- 最终决策时,你会如何平衡“显著性”和“ROI/长期价值”?
Q8
面试官问你:
“为什么数据分析里不能只看 p-value?”
请你组织一段 1-2 分钟的口语回答,至少覆盖以下点:
- p-value 的含义
- p-value 的局限
- 样本量与显著性的关系
- 业务意义为什么不能缺席
- 在电商实验里应该结合哪些信息一起判断
Day7
Q1(AB Test)
拼多多准备改版“商品详情页底部推荐位”,产品预期是提升下单转化率。你作为数据分析师,需要设计一套 A/B Test 方案。
请回答:
- 实验目标是什么?
- 主指标(primary metric)和两个副指标(secondary metrics)分别选什么?
- 你会选择用户级随机(user-level randomization)还是曝光级随机(impression-level randomization)?为什么?
- 至少说出 3 个需要重点监控的护栏指标(guardrail metrics)。
- 什么情况下你会建议“继续放量”,什么情况下你会建议“停止上线”?
答案
1. 实验目标
核心目标是验证:推荐位改版是否能提升商品详情页到下单链路的转化效率,并最终带来更多有效成交。
更完整地说:
- 直接目标:提升支付转化率 / 下单转化率
- 中间目标:提升推荐商品点击率、加购率
- 最终目标:提升成交额或订单数,同时不伤害用户体验和售后质量
2. 主指标 + 两个副指标
主指标(Primary Metric)
- 支付转化率(Pay CVR)
原因:
- 改推荐位的最终目的不是“让用户多点”,而是让用户更容易成交
- 支付转化率更贴近业务结果,比 CTR 更不容易被“标题党/低价吸引”误导
副指标(Secondary Metrics)
- 推荐位 CTR(Click Through Rate)
- 加购率 / 下单率(Add-to-cart Rate / Order Rate)
也可以补充:
- GMV per user
- 推荐位带来的订单占比
3. 随机化方式
更推荐:用户级随机(user-level randomization)
原因:
- 同一个用户多次访问详情页时,实验体验一致,不容易造成混淆
- 适合转化链路较长的场景,能更稳定地归因到用户行为变化
- 曝光级随机容易让同一用户今天看到 A、明天看到 B,带来污染(contamination)
4. 护栏指标(Guardrail Metrics)
至少监控这 3 类:
- 退款率 / 售后率
- 客单价(AOV)
- 页面跳失率 / 退出率
还可以补:
- 页面加载时长
- 用户投诉率
- 次日留存
- 人均浏览深度
原因:
很多改版会“点击变高”,但把低质量流量吸进来,导致退款率升高、客单价下降,最后对平台未必是好事。
5. 何时继续放量 / 停止上线
建议继续放量:
- 主指标支付转化率显著提升
- 护栏指标无明显恶化
- 提升具有业务意义,不只是统计显著但提升极小
- 分人群/分渠道结果稳定,没有明显异常
建议停止上线:
- 主指标没有显著提升,甚至下降
- 客单价、退款率、投诉率等明显恶化
- 结果高度依赖少数渠道/少数人群,不具备普适性
- 存在实验污染、分流异常、样本偏差等问题
本题讲解
这题考的是你会不会把 A/B Test 从“会背流程”变成“能落到业务”。
标准思路是:
实验目标 → 指标体系 → 随机化方式 → 风险控制 → 上线决策
很多人容易犯两个错:
- 把 CTR 当主指标
- 只说“显著就上线”,不看退款率、客单价等护栏指标
在拼多多这类电商场景里,成交质量 比 表面互动 更重要。
Q2
某次按钮改版实验结果如下:
- A组(旧版):100,000 用户,支付转化率 4.80%
- B组(新版):100,000 用户,支付转化率 5.04%
- 检验结果:p-value = 0.08
请回答:
- 这个实验结果是否“统计显著”?
- 业务上能不能直接说“新版更好”?
- 如果产品经理坚持认为“已经涨了,可以上线”,你会怎么回应?
- 请给出一个你会继续分析的方向,而不是只停留在 p-value 上。
答案
1. 是否统计显著?
如果显著性水平取常见的 0.05,那么:
- p-value = 0.08 > 0.05
- 结论:不统计显著
也就是说,目前不能拒绝原假设,不能认为新版一定优于旧版。
2. 能不能直接说“新版更好”?
不能直接这么说。
因为虽然 B 组数值上更高:
- 绝对提升 = 5.04% - 4.80% = 0.24 个百分点
- 相对提升 = 0.24% / 4.80% = 5%
但统计上还不能确认这个差异不是随机波动造成的。
更严谨的说法是:
- “B 组目前表现出正向趋势,但尚未达到统计显著,证据不足以支持直接上线。”
3. 如果产品经理坚持说“已经涨了,可以上线”,你怎么回应?
标准回应:
数值上涨不等于实验成功。目前 p-value=0.08,说明证据还不够强,不能排除随机波动。如果现在直接上线,可能承担误判风险。建议先补充样本、延长实验周期,或者进一步看分人群、分渠道和护栏指标,再做决策。
你要体现的是:
- 不是死板地说“不行”
- 而是说“当前证据不够,建议补证据”
4. 继续分析的方向
至少可以从以下方向继续看:
方向一:分层分析
- 新老用户
- 不同渠道
- 不同商品类目
- 不同价格带
因为总体不显著,不代表局部没有显著效果。
方向二:护栏指标
- 客单价
- 退款率
- 页面停留时长
- 跳失率
因为即使支付率略涨,如果退款率升高、客单价下滑,也未必值得上线。
本题讲解
这题的核心不是算数,而是如何解释不显著结果。
面试里很常见的坑是:
- 看到 B 比 A 高,就直接说“新版更好”
- 或者反过来,一看到不显著就说“完全没效果”
更好的答法是:
方向上偏正向,但证据不足,不能直接下结论。
这就比简单说“显著/不显著”更像数据分析师。
Q3(SQL)
现有实验曝光与订单表:
exp_log
user_id | exp_date | exp_group |
用户ID | 曝光日期 | A/B组 |
order_log
user_id | order_date | order_id | pay_amt |
用户ID | 下单日期 | 订单ID | 支付金额 |
请写 SQL,统计 2026-04-01 到 2026-04-07 这 7 天内:
- 每个实验组的曝光用户数
- 每个实验组的支付用户数
- 每个实验组的支付转化率 = 支付用户数 / 曝光用户数
- 每个实验组的 ARPPU = 总支付金额 / 支付用户数
要求:
- 以用户去重口径统计曝光用户数和支付用户数
- 只要用户在曝光后 7 天内有支付,就记为该实验转化
- 输出字段至少包括:exp_group, exposed_uv, pay_uv, cvr, arppu
答案
这里采用一个比较稳的归因口径:
- 先取每个用户在实验期内的首次曝光
- 只统计这次曝光后 7 天内的支付
- 支付用户按用户去重
- ARPPU = 总支付金额 / 支付用户数
SQL 讲解
第一步:先取首次曝光
意思是:
- 对每个用户按曝光时间排序
- 取第一条曝光记录
这样做是为了避免同一个用户多次曝光、重复归因。
第二步:找曝光后 7 天内支付
意思是:
- 只要支付发生在曝光之后
- 且在 7 天归因窗口内
- 就算作这次实验带来的转化
第三步:按实验组聚合
exposed_uv:每组曝光用户数
pay_uv:每组支付用户数
total_pay_amt:每组总支付金额
第四步:算 CVR 和 ARPPU
- CVR 看的是“曝光用户里有多少人付费”
- ARPPU 看的是“付费用户平均付了多少钱”
本题考点
这题考得很像拼多多:
- 业务口径定义是否清楚
- 去重是否做对
- 是否理解归因窗口
- 是否会用窗口函数
这题里最容易错的是:
- 不去重,直接 count(*)
- 不处理首次曝光
- 没有限制“曝光后 7 天”
- ARPPU 分母写成曝光用户数,错成 ARPU
Q4
你在看一场百亿补贴活动页改版实验时,发现:
- B组 CTR 显著提升
- 但支付转化率没有显著提升
- 客单价下降
- 退款率上升
- 用户停留时长增加很多
请你从业务视角回答:
- 这个实验可能发生了什么?
- 这种情况下,CTR 提升为什么不一定代表实验成功?
- 你会优先排查哪 4 个方向?
- 最后你会更倾向于放量、继续观察,还是下线?请说明理由。
答案
1. 这个实验可能发生了什么?
很可能是:
改版增强了吸引点击的能力,但吸引来的流量质量下降了。
可能情况包括:
- 页面更强调低价/优惠,吸引了更多“冲动点击”
- 用户点进来了,但购买意愿不强
- 进入的是低价商品,导致客单价下降
- 用户预期被放大,购买后不满意,退款率升高
也就是:前链路变好,后链路变差。
2. 为什么 CTR 提升不一定代表实验成功?
因为 CTR 只是中间指标,不是最终业务目标。
一个常见错误是:
- 把“更会吸引点击”当成“更能带来成交”
但在电商里,真正关心的是:
- 是否多成交
- 是否成交质量更高
- 是否减少售后风险
- 是否对长期留存有帮助
CTR 上升只能说明“用户更愿意点”,不能说明“用户更愿意买、买得更值、买完更满意”。
3. 优先排查哪 4 个方向?
方向一:流量质量
- 是不是吸引了更多低意向用户?
- 新客/低消费能力用户占比是否提升?
方向二:商品结构
- 是否更多流量流向低价、低质、易退款商品?
- 品类结构有没有变化?
方向三:漏斗转化
- 点击 → 加购 → 下单 → 支付 → 退款 到底卡在哪一层?
方向四:页面表达与用户预期
- 是否文案、价格展示、补贴展示让用户产生误解?
- 是否造成“先点进来再失望”?
4. 放量 / 观察 / 下线?
更倾向:暂不放量,优先继续排查,必要时下线。
理由:
- CTR 显著提升是正向信号
- 但支付没有改善,说明商业价值未兑现
- 客单价下降 + 退款率上升,是明显负面信号
- 这意味着短期可能“看起来热闹”,长期却伤害 GMV 和用户体验
更稳的建议是:
- 先不直接放量
- 做分人群和商品层级复盘
- 如果负面结果在主要人群中都存在,倾向下线
本题讲解
这题本质在考你能不能识别“伪正向实验”。
典型现象就是:
- 点击涨了
- 停留时长涨了
- 但真正赚钱的指标没涨,甚至变差
这是面试里非常高频的坑。
正确思路永远是:
不只看前链路热闹不热闹,要看最后有没有形成高质量成交。
Q5
某实验中,A组样本转化率为 10%,B组样本转化率为 12%。
请回答:
- B组相对 A组的 uplift(相对提升)是多少?
- 如果样本量很小,即使 uplift 看起来不低,也可能为什么无法显著?
- 请用自己的话解释:
- 什么是第一类错误(Type I Error)
- 什么是第二类错误(Type II Error)
- 在拼多多这种大流量平台里,为什么“统计显著”不等于“业务值得上线”?
答案
1. uplift 是多少?
相对提升(uplift):
12%−10%10%=20%\frac{12\%-10\%}{10\%}=20\%
10%12%−10%=20%
所以答案是:20%
补充:
- 绝对提升:2 个百分点
- 相对提升:20%
这两个概念不要混。
2. 样本量小,为什么可能不显著?
因为样本量小的时候,估计值波动更大,标准误更大,不确定性更强。
也就是说:
- 即使表面 uplift 看起来不低
- 也可能只是样本噪声造成的
- 统计检验无法确认这是真实提升
一句话:
样本太小,信号可能被噪声淹没。
3. Type I Error 和 Type II Error
第一类错误(Type I Error)
- 原本没效果,你却误判成“有效果”
- 也就是“假阳性”(false positive)
举例:
- 实际新版本并没有更好
- 但你因为随机波动,以为它更好并上线了
第二类错误(Type II Error)
- 原本有真实效果,你却没检出来
- 也就是“假阴性”(false negative)
举例:
- 新版本其实真的更好
- 但样本太小或波动太大,你没看出来,错过了好方案
4. 为什么统计显著不等于业务值得上线?
因为统计显著只说明:
- 差异大概率不是随机造成的
但它不回答:
- 提升是否足够大
- 成本是否值得
- 会不会伤害长期指标
- 是否带来退款、投诉、低价劣质订单等副作用
比如:
- 转化率显著提升 0.1%
- 但客单价下降 3%
- 退款率上升 2%
- 那业务上可能反而更差
本题讲解
这题考的是最基础但最容易混淆的实验概念:
- 绝对提升 vs 相对提升
- 显著性与样本量
- 第一类错误 vs 第二类错误
- 统计显著 vs 业务价值
这些几乎是数分笔试必考点。
Q6(多指标变化)
拼多多搜索页做了一个“低价标签强化”实验。结果如下:
- 搜索点击率:+6%
- 加购率:+3%
- 支付转化率:-1%
- 客单价:-5%
- 退款率:+2%
- 次日留存:无明显变化
请你像面试一样作答:
- 你会如何判断这个实验“表面变好、实际未必变好”?
- 如果核心目标是 GMV,你会怎么拆解这组结果?
- 你认为这个改动可能吸引了什么类型的用户?
- 从平台长期价值看,这个实验最大的隐患是什么?
- 你的最终建议是什么?请给出结构化结论。
答案
1. 如何判断“表面变好、实际未必变好”?
这组结果非常典型,说明:
- 前链路指标更好:CTR +6%,加购率 +3%
- 但后链路和成交质量变差:支付转化率 -1%,客单价 -5%,退款率 +2%
这意味着:
改动可能更会吸引用户点进去、加购物车,但吸引来的购买行为更偏低价、低意向、低质量。
所以这是典型的:
表层互动改善,但最终商业结果可能受损。
2. 如果核心目标是 GMV,怎么拆?
可以拆成:
GMV=流量×点击率×加购率×支付转化率×客单价GMV = 流量 \times 点击率 \times 加购率 \times 支付转化率 \times 客单价
GMV=流量×点击率×加购率×支付转化率×客单价
在这题里,至少已知链路中:
- CTR:+6%
- 加购率:+3%
- 支付转化率:-1%
- 客单价:-5%
虽然前面两段改善了,但后面两段在变差,尤其客单价下降比较明显。
因此要警惕:
- 即使订单量可能没明显下滑
- GMV 未必真的增长
- 就算短期 GMV 持平,退款率上升也会让净收益变差
更稳的说法是:
必须进一步看最终 GMV、净 GMV、退款后 GMV,而不能只看点击和加购。
3. 可能吸引了什么类型用户?
大概率吸引了以下用户:
- 对价格高度敏感的用户
- 冲动型点击用户
- 低消费能力用户
- 只看低价标签、但需求匹配度不高的用户
也可能带来:
- 薅补贴用户
- 低忠诚度用户
- 更容易后悔/退款的用户
4. 平台长期价值的最大隐患是什么?
最大隐患是:
平台为了短期点击和加购,牺牲了成交质量和用户信任。
更具体地说:
- 低价标签可能强化“便宜就点”的心智
- 但如果商品并不适配、质量不稳定、预期不一致
- 就会带来更多退款和失望体验
- 长期可能损害平台商品生态和用户信任
5. 最终建议
结构化结论可以这样答:
结论:暂不建议直接放量。
原因:
- 前链路指标改善,但后链路支付和成交质量恶化
- 客单价下降 + 退款率上升,对 GMV 和净收益不利
- 说明流量质量可能下降,实验价值不稳定
- 从长期看,可能伤害用户体验和平台生态
建议动作:
- 先做人群分层:新老客、价格敏感人群、高客单用户
- 看类目分布变化:是否流向低价高退款类目
- 看净 GMV / 退款后 GMV / 利润口径
- 再决定是否仅在部分人群灰度,而不是全量上线
本题讲解
这题非常有拼多多业务分析味道。
不是让你看到几个指标就机械地下结论,而是要你识别:
“低价标签”这种策略,很容易把前链路做漂亮,但也最容易拉低流量质量。
所以最好的答法不是“点击涨了,应该上线”,而是:
这个实验可能优化了吸引力,但没有证明优化了高质量成交。
Day8
Q1(SQL)
某活动页有两张表:
visit_log
字段 | 含义 |
dt | 访问日期 |
user_id | 用户ID |
channel | 渠道,取值为 natural / ad / push |
is_activity_page | 是否访问活动页,1/0 |
order_log
字段 | 含义 |
dt | 下单日期 |
user_id | 用户ID |
order_id | 订单ID |
pay_amt | 支付金额 |
subsidy_amt | 平台补贴金额 |
is_paid | 是否支付成功,1/0 |
请写 SQL,统计 2026-03-01 到 2026-03-07 每天各
channel 的以下指标:- 活动页 UV
- 支付买家数
- 支付订单数
- GMV(仅支付成功订单)
- 转化率 = 支付买家数 / 活动页 UV
- 客单价 = GMV / 支付订单数
- ROI = GMV / 补贴总额
要求:
- 没有支付也要保留渠道日期记录
- 同一用户一天内多次访问活动页,只算 1 个 UV
- 只统计访问活动页的用户带来的支付
答案
讲解
这题核心不是函数难,而是 业务口径 和 防止 join 后重复计算。
第一步,先从
visit_log 里拿到活动页 UV。因为题目说“同一用户一天内多次访问活动页,只算 1 个 UV”,所以必须先去重到:
dt
channel
user_id
第二步,先把订单表聚合到“天-用户”粒度。
这样做的原因是:如果你直接把访问表和订单表明细 join,用户有多次访问、多笔订单时,很容易把订单金额放大。
第三步,用
LEFT JOIN。因为题目要求:没有支付也要保留渠道日期记录。
这意味着主表应该是访问表,不是订单表。
第四步,几个指标口径:
- 活动页 UV = 去重访问用户数
- 支付买家数 = 有至少 1 笔支付成功订单的用户数
- 支付订单数 = 支付成功订单数
- GMV = 支付成功订单金额和
- 转化率 = 支付买家数 / 活动页 UV
- 客单价 AOV = GMV / 支付订单数
- ROI = GMV / 补贴总额
易错点
- 直接用明细表 join,导致 GMV 被重复计算。
- 用
INNER JOIN,把没支付的 UV 丢掉。
COUNT(*)代替COUNT(DISTINCT user_id),导致 UV 错。
- ROI 和客单价没有处理除零问题。
更严谨的业务补充
这题有一个隐藏点:
如果同一用户同一天通过多个
channel 都访问了活动页,那订单会被重复归因到多个渠道。因为题目没给“最后一次访问时间”或“归因规则”,所以笔试里通常默认按题面写。
但真实业务里会进一步规定:
- last click attribution
- first touch attribution
- session attribution
这是你面试里可以主动加分的一句。
Q2(总指标变化问题)
你负责拼多多某“限时秒杀频道”,业务负责人说:
“最近 GMV 下滑了 12%,你帮我尽快看一下问题在哪。”
请你回答:
- 你会先把 GMV 拆成什么公式?
- 你会优先看哪些一级指标、二级指标?
- 你会按哪些维度分层下钻?
- 你如何区分“正常回落”还是“异常下滑”?
- 最后你会如何向业务方输出结论?
要求:用结构化方式回答,尽量贴近电商场景。
答案
如果“限时秒杀频道 GMV 下滑 12%”,我会按下面框架拆:
1. 先拆公式
最常用拆法:
GMV = 流量 × 转化率 × 客单价
进一步细化成:
GMV = 频道 UV × 点击率 × 下单转化率 × 支付转化率 × 每单金额
也可以从订单角度拆成:
GMV = 支付买家数 × 购买频次 × 客单价
2. 先看哪些一级指标、二级指标
3. 分层下钻维度
我会优先按以下维度拆:
- 时间:按日、按小时,是否某几天异常
- 用户:新客 / 老客,高价值 / 低价值用户
- 渠道:自然流量 / 推送 / 广告 / 搜索导流
- 类目:食品、美妆、3C、日百等
- 商品价格带:低价 / 中价 / 高价
- 商家:头部商家 vs 长尾商家
- 地域:是否某些区域异常
- 活动资源位:频道首页、推荐位、搜索位
4. 如何区分“正常回落”还是“异常下滑”
我会看四类对比:
第一,看环比同比。
看这 12% 下滑是否超出历史波动区间。
第二,看活动/季节因素。
如果前几天有大促、发券、推送,之后回落可能是正常现象。
第三,看供给变化。
如果核心秒杀商品断货、参与商家减少,那更像供给问题。
第四,看结构变化。
如果 UV 没掉,但支付转化或客单价掉了,那不是正常回落,而是链路质量出了问题。
5. 给业务方的输出方式
我会按这四段输出:
结论
- GMV 下滑 12%,主要由哪 1-2 个核心因素造成
证据
- 是 UV 下滑、转化率下滑,还是客单价下滑
- 哪些类目/渠道/人群影响最大
原因判断
- 属于正常回落、供给问题、价格带变化,还是流量质量问题
行动建议
- 补库存
- 调整流量分发
- 恢复核心补贴
- 优化高转化商品池
讲解
这题本质考的是:
你能不能把“业务喊一句 GMV 跌了”翻译成 指标树 + 排查路径。
面试高分点
你不要只说“我会看流量、转化、客单价”,还要继续说:
- 我会先定位一级问题
- 再做维度切片
- 再判断是结构变化还是绝对量变化
- 最后给可执行动作
这就不是背概念,而是像真正在做业务分析。
Q3(多指标变化)
某次“百亿补贴”活动后,团队发现:
- 活动期 GMV 大涨
- 活动结束后一周,整体订单量较活动前仍高 8%
- 但利润率明显下降
- 老用户复购率下降,新用户占比上升
- 部分类目退款率上升
请你分析:
- 这组现象可能意味着什么?
- 你会如何判断这次活动到底是成功还是失败?
- 你会补看哪些关键指标?
- 你会如何区分“短期拉新有效”和“透支长期价值”?
- 如果让你给下一次活动提 3 条优化建议,你会怎么提?
答案
1. 这组现象可能意味着什么
这组现象说明,这次活动很可能 拉高了短期交易规模,但牺牲了部分交易质量和长期价值。
可能含义有:
- 补贴把大量价格敏感型新用户拉进来了,所以 GMV 和订单量上升。
- 但这些用户质量偏低,活动后留存和复购未必好。
- 利润率下降,说明增量交易可能主要依赖高补贴。
- 老用户复购率下降,可能存在“透支需求”或“老用户被低质供给影响”。
- 部分类目退款率上升,说明可能有低质量供给、冲动下单、价格误导或履约问题。
2. 如何判断活动成功还是失败
不能只看 GMV,要看 增量价值。
我会从四个层面判断:
规模
- 增量 GMV
- 增量订单
- 增量支付用户数
效率
- ROI
- 补贴率
- CAC
- 单位补贴带来的增量交易额
质量
- 退款率
- 客诉率
- 履约时效
- 新客次日/7日/30日留存
- 新客后续复购率
长期价值
- 活动新客的 LTV
- 老用户是否被透支
- 活动后自然单量是否恢复
如果只是 GMV 涨,但利润、复购、退款都恶化,那很可能不是高质量成功。
3. 需要补看的关键指标
我会补看:
- 增量 GMV,而不是总 GMV
- 补贴率
- 毛利率 / 净利率
- 新客 CAC
- 新客 7日/30日复购率
- 老客复购率变化
- 活动前后类目结构变化
- 退款率 / 取消率 / 客诉率
- 履约时效
- 高退款类目占比
4. 如何区分“短期拉新有效”和“透支长期价值”
核心方法是看 cohort。
把活动拉来的新客单独拉 cohort,看:
- 7日留存
- 30日复购
- 30日累计利润
- 第二单是否仍然依赖补贴
- 是否集中在低价低质类目
再看老客:
- 老客活动前后的购买频次
- 是否把本来未来要买的需求提前消费了
- 活动后是否明显下滑
如果新客只在活动时下单一次,老客活动后反而沉默,那就是典型透支长期价值。
5. 下一次活动的 3 条优化建议
第一,补贴更精准。
不要大水漫灌,优先补给高潜新客、高复购类目和高质量商家。
第二,控制类目和商品池。
对退款率高、售后差、履约不稳定的类目做限制,避免“低质量 GMV”。
第三,活动后做承接。
针对活动新客设计后续留存链路,比如优惠券、推荐商品、复购提醒,而不是只做一次性拉新。
讲解
这题高分点在于:
你要明确说出 “GMV 增长不等于活动成功”。
拼多多这类平台很爱问这类题,因为它能区分:
- 只会看表的人
- 真正懂交易质量的人
你答题时一定要把视角从“总量”切到:
- 增量
- 质量
- 长期价值
Q4(AB Test)
拼多多准备改版商品详情页的“立即购买”按钮样式,希望提升支付转化率。你作为数据分析师,需要设计实验。
请回答:
- 你的 核心假设 是什么?
- 你会怎么选 主指标、辅助指标、护栏指标?
- 你会如何选择实验单位,是按用户随机、曝光随机,还是别的方式?
- 如果实验结果显示:
- 支付转化率显著提升 1.5%
- 但退款率也显著提升 0.8%
- 客诉率略升但不显著 你会建议全量上线吗?为什么?
- 如果结果统计上不显著,但业务方坚持“趋势是好的”,你会怎么回应?
答案
1. 核心假设
核心假设是:
改版后的“立即购买”按钮能够提升商品详情页到支付的转化率,并且不会显著恶化退款、客诉等下游质量指标。
2. 主指标、辅助指标、护栏指标
主指标
- 支付转化率
辅助指标
- 点击“立即购买”按钮的点击率
- 下单转化率
- GMV per UV
- 支付订单数
护栏指标
- 退款率
- 取消率
- 客诉率
- 页面跳出率
- 停留时长异常变化
3. 实验单位怎么定
我会优先选择 按用户随机分组。
原因:
- 同一用户会多次访问商品详情页。
- 如果按曝光随机,同一用户可能一会看到 A,一会看到 B,容易互相污染。
- 用户级随机更适合评估真实购买行为。
4. 结果为“支付转化率显著提升 1.5%,但退款率显著提升 0.8%,客诉率略升不显著”,是否全量上线
我的结论是:
不建议直接全量上线。
原因:
- 主指标变好,但下游质量变差,说明这个按钮可能提升了“冲动购买”,而不是高质量购买。
- 退款率显著上升,已经说明负面影响不是噪音。
- 需要进一步判断净收益:
- GMV 是否真的增加
- 利润是否增加
- 退款损失是否抵消提升
- 哪类商品、哪类用户问题更严重
更合理的做法是:
- 先分层分析
- 看问题集中在哪些类目/用户
- 优化按钮文案或位置后再做二轮实验
- 必要时小流量灰度,而不是直接全量
5. 如果结果不显著,但业务方坚持“趋势是好的”,怎么回应
我的回应会是:
当前数据不足以支持“新方案一定更优”的结论。趋势向好可以作为参考,但不能作为正式上线依据。
接着我会补充三件事:
- 延长实验周期,扩大样本量。
- 看是否存在特定人群或类目的显著提升。
- 检查实验功效是否足够,避免“其实有效,但样本不够导致看不出来”。
讲解
这题核心考察 3 件事:
- 你会不会设计实验指标
- 你知不知道主指标不等于全部
- 你能不能抵住业务压力,坚持统计结论
高分回答不是一句“不能上线”,而是:
- 为什么不能直接全量
- 接下来怎么做
- 要补看哪些净收益指标
Q5
某推荐策略 A/B 实验中:
- A 组样本量:50,000
- B 组样本量:50,000
- A 组点击率:8.0%
- B 组点击率:8.3%
- 检验后 p-value = 0.09
请回答:
- 在 5% 显著性水平下,结论是什么?
- p-value = 0.09 应该如何正确解释?
- “不显著”是否等于“B 方案没有效果”?
- 如果业务方问你“那到底要不要继续实验”,你会从哪些角度回答?
- 这道题里,统计显著性和业务显著性有什么区别?
答案
1. 5% 显著性水平下,结论是什么
因为
p-value = 0.09 > 0.05,所以:在 5% 显著性水平下,不能拒绝原假设。
也就是说,当前证据不足以说明 B 组点击率显著高于 A 组。
2. p-value = 0.09 如何正确解释
正确解释是:
在原假设成立的前提下,观察到当前这么大或更极端差异的概率是 9%。
错误解释包括:
- “原假设为真的概率是 9%”
- “B 方案只有 9% 概率有效”
这些都不对。
3. “不显著”是否等于“B 没有效果”
不等于。
不显著只表示:
- 当前样本下,证据不够强
它可能有三种情况:
- B 真的没效果
- B 有效果,但效果小
- B 有效果,但样本量不够,统计功效不足
4. 要不要继续实验,从哪些角度回答
我会从四个角度回答:
第一,效果大小
- 虽然不显著,但 B 组点击率从 8.0% 到 8.3%,方向是正的
第二,业务价值
- 这个 uplift 对业务值不值得继续追
第三,样本量和功效
- 现在样本是否足够支持检测这么小的提升
第四,风险
- 是否有护栏指标变差,比如转化、退款、客诉
如果这个指标非常重要,且当前 uplift 有业务意义,我会建议继续实验或扩大样本。
5. 统计显著性和业务显著性有什么区别
统计显著性:
看这个差异是否足够不像随机波动。
业务显著性:
看这个差异即使真实存在,是否值得上线。
比如:
- 一个提升可能统计上显著,但只提升很小,对业务几乎没价值
- 也可能业务上很重要,但当前样本不足,暂时不显著
讲解
这题最容易错的,就是把 “不显著” 说成 “没效果”。
正确说法是:
目前证据不足,不代表一定没有效果。
这类表述在笔试和面试都非常重要,因为它体现你对假设检验的理解是否准确。
Q6(多指标变化)
某搜索推荐场景最近两周出现了以下变化:
- 搜索 PV 持平
- 搜索结果页 CTR 上升
- 加购率持平
- 支付转化率下降
- 客单价下降
- 低价商品曝光占比明显提升
- 新用户支付占比上升,老用户支付占比下降
请你站在拼多多数分岗视角,回答:
- 这说明问题更可能出在搜索前链路、中链路还是后链路?
- 你会提出哪些可能原因?
- 你会如何构建一个排查框架?
- 你最想补看的 8 个指标是什么?
- 如果最后发现是“低价商品分发过多”导致的,你会如何向算法和业务团队分别给建议?
答案
1. 问题更可能出在前链路、中链路还是后链路
我会判断:
更可能出在中后链路,尤其是“点击后的交易质量”出了问题。
原因:
- 搜索 PV 持平,说明前链路流量规模没问题
- 搜索结果页 CTR 上升,说明结果更容易被点
- 但加购率持平、支付转化率下降、客单价下降,说明点击变多了,但点击后的购买质量变差了
2. 可能原因
我会提出这几类原因:
- 排序策略过度偏向低价商品,带来更多“便宜但不一定合适”的点击
- 商品吸引点击,但详情页承接不够,用户看后不买
- 曝光结构变化,老用户偏好的中高价值商品被压缩
- 新用户占比提升,导致整体支付深度和客单价下降
- 商家供给质量下降,低价商品履约或品质较差
- 搜索结果更“吸睛”,但相关性不够强,造成高 CTR、低成交
3. 排查框架
我会按漏斗 + 结构两层来查。
漏斗层
搜索曝光
→ 搜索结果点击
→ 商品详情页浏览
→ 加购
→ 下单
→ 支付
重点看是哪一层开始明显劣化。
结构层
再按以下维度切:
- 新客 / 老客
- 价格带
- 类目
- 查询词类型
- 商家层级
- 自然排序 / 商业化流量
- 低价商品 vs 非低价商品
4. 最想补看的 8 个指标
- 搜索结果页 CTR
- 商品详情页进入率
- 详情页到加购转化率
- 加购到支付转化率
- 整体支付转化率
- 客单价
- 低价商品曝光占比
- 老用户支付转化率
5. 如果确认是“低价商品分发过多”导致的,怎么给建议
给算法团队
- 排序目标不要只看 CTR,要引入支付转化率、GMV、利润、退款率等多目标约束
- 对低价商品曝光比例设置上限或校准机制
- 做用户分层,新客和老客使用不同排序策略
- 增加“点击后成交质量”权重,而不是只追点击
给业务团队
- 优化低价商品池质量,清理低质供给
- 补充中高客单价、高复购商品供给
- 对核心老用户加强高质量商品曝光
- 从经营侧管理低价引流商品的履约和售后表现
讲解
这题特别像拼多多风格,因为它不是问你一个单点指标,而是看你会不会顺着漏斗推断问题位置。
最关键的判断逻辑是:
- PV 持平:前链路流量没大问题
- CTR 上升:点击变好了
- 支付转化和客单价下降:说明“点击质量”下降了
所以这不是简单的“流量少了”,而是 流量结构和商品分发质量变了。
Day9
Q1(总指标问题)
- 题型:业务分析
- 难度:中
- 来源标签:面经还原
某电商平台 618 大促结束后一周,整体 GMV 较大促前一周下降 18%。你作为数据分析师,需要快速判断这是“正常回落”还是“异常下滑”。
请回答:
- 你会先看哪些核心指标?
- 你会按哪些维度拆解?
- 如何判断是流量问题、转化问题还是客单价问题?
- 最后如何给业务建议?
答案
先拆公式:
GMV = 流量 × 转化率 × 客单价
第一步先看核心指标:
- UV / PV:是否流量下滑
- CTR / 加购率 / 支付转化率:是否链路转化变差
- 客单价 / 件单价 / 连带率:是否客单价下降
- 新客数、老客数、复购率:是否用户结构变化
- 补贴成本、券使用率:是否大促激励退出导致自然回落
拆维度:
- 时间:按天看回落斜率,判断是瞬时回落还是持续恶化
- 用户:新老客、高低价值用户、不同城市等级
- 商品/类目:是否某几个大类拖累
- 店铺:头部/腰部/长尾谁在掉
- 渠道:自然流量、投放流量、会场流量、搜索、推荐
- 场景:首页、搜索、活动页、直播等
判断归因:
- 若 UV 明显下降,转化和客单价相对稳定,偏流量问题
- 若 UV 稳定,但支付转化率下降,偏转化问题
- 若 UV、CVR 稳定,但客单价下降,偏客单价问题
- 若多个指标一起掉,要先找最大贡献项
结论与动作:
- 若是正常回落:说明大促透支需求、补贴收缩、会场结束,属正常季节性
- 若是异常下滑:看是否有流量分发变化、价格竞争、库存不足、退款上升、履约体验变差
动作建议:
- 对高潜类目继续承接活动流量
- 对老客做复购券和召回
- 对高退款店铺控流或治理
- 对搜索/推荐流量异常快速排查策略变更
讲解
这题核心不是“猜原因”,而是先搭框架。拼多多风格很看重你能不能把问题拆成指标树。
本题考察能力
- GMV 拆解
- 归因分析
- 电商业务分层思维
易错点
- 一上来就说“肯定是大促后正常回落”
- 只看 GMV,不拆流量、转化、客单价
- 没有给动作建议
举一反三
把题目改成“订单量涨了但 GMV 跌了”,你就要优先怀疑客单价和商品结构变化。
面试追问
如果面试官问“如何量化各因子对 GMV 下滑的贡献”,你可以答:
- 先做乘法拆解
- 再做环比贡献度分析
- 必要时做用户/类目双维度交叉拆解
Q2(活动评估)
- 题型:活动效果评估
- 难度:中上
- 来源标签:面经还原
平台对某品牌做了 7 天首页资源位扶持,活动期间该品牌销售额达到 5000 万。业务方认为活动非常成功,想继续追加预算。
请回答:
- “5000 万销售额”为什么不能直接说明活动成功?
- 你会如何评估活动真实增量(incremental lift)?
- 你会看哪些主指标和副指标?
- 如果销售额提升了,但 ROI 很差,你会怎么解释?
答案
“5000 万销售额”不能直接说明成功,因为它是结果值,不是增量值。其中可能混入:
- 自然销量
- 原本就会发生的购买
- 其他渠道导流
- 活动期间价格补贴硬拉起来的销量
如何判断活动是否成功
1)先建立基线(baseline)
先估计“不做活动时,这个品牌原本会卖多少”。
常见方法有 3 种:
方法 A:前后对比
看活动前 7 天 / 前 14 天的销售趋势,估计自然销量基线。
问题:
- 容易受季节性、周末效应、平台大盘波动影响
方法 B:找对照组
找没有参加活动、但体量和趋势相近的品牌/店铺做对照。
比如:
- 同类目
- 相似价格带
- 相似历史销量
- 相似用户画像
然后比较:
- 活动组增长多少
- 对照组增长多少
方法 C:DID(双重差分)
这是最标准、最像分析师的说法。
公式思路:
活动增量 =(活动组活动后 - 活动组活动前) - (对照组活动后 - 对照组活动前)
这样可以更好排除大盘波动和季节性。
2)再看活动效果不是只看销售额,而是看“增量质量”
除了增量 GMV,还要看:
- 增量订单数
- 增量购买用户数
- 增量利润
- ROI / ROAS
- 新客占比
- 复购率
- 退款率
因为有可能:
- GMV 增加了,但全靠补贴换来的
- 订单变多了,但退款也变高了
- 新客进来了,但后面根本不复购
3)最后才能判断“活动是否成功”
判断逻辑可以写成:
- 如果 增量 GMV 显著为正
- 且 增量利润/ROI 合理
- 且 新客质量、复购、退款率没有明显恶化
那才说明这次活动是成功的。
如果只是总销售额高,但:
- 增量不明显
- ROI 很差
- 退款率变高
- 毛利被吃掉
那这次活动就不能算真正成功。
主指标:
- 增量 GMV
- 增量订单数
- 增量购买用户数
- ROI / ROAS
副指标:
- 新客占比
- 复购率
- 客单价
- 券后毛利率
- 退款率
- 活动结束后留存效果
如果销售额提升但 ROI 很差,可能说明:
- 主要靠大额补贴买来的
- 拉来的是低质量用户
- 增量订单利润很薄
- 活动挤占了其他品牌/其他渠道的自然销量
讲解
这题最关键的词是 真实增量。业务方最爱说“卖了多少”,分析师要追问“多卖了多少”。
本题考察能力
- 活动评估
- 增量思维
- ROI 意识
易错点
- 把总销售额当成功标准
- 忽略反事实
- 不区分 GMV 和利润
举一反三
如果问“双十一活动成功不成功”,思路完全一样:先看增量,再看成本,最后看长期价值。
面试追问
如果没有严格对照组怎么办?
你可以答:
- 用历史同期趋势
- 用相似品牌匹配
- 用活动前后趋势 + 外部基准做近似评估
Q3(用户分层)
- 题型:指标体系 / 用户分层
- 难度:中
- 来源标签:高频仿真
你发现平台 DAU 在增长,但 30 日复购率在下降。请从“新客 / 老客 / 高价值用户 / 低价值用户”角度,设计一个分析框架。
要求回答:
- 至少给出 4 类用户分层方式;
- 每层看什么指标;
- 可能出现什么业务现象;
- 对应动作是什么。
答案
当 DAU 增长但 30 日复购率下降时,优先怀疑是新增用户质量下降或者用户结构变了。
分层建议:
渠道用户分层
- 看:自然流量用户、投放用户、裂变用户的首购和复购
- 现象:投放带来 DAU,但复购差
- 动作:停掉低质渠道,优化渠道投放模型
活跃用户 vs 轻度用户
- 看:访问频次、会话时长、加购率、下单率
- 现象:轻度活跃用户增加,但购买心智弱
- 动作:加强内容种草、搜索推荐承接
高价值用户 vs 低价值用户
- 看:ARPU、购买频次、客单价、流失率
- 现象:低价值用户大量进入,稀释整体复购
- 动作:对高价值用户做会员、专属券、精准召回
新客 vs 老客
- 看:首单转化率、7/30 日复购率、次日留存
- 现象:新增很多,但新客质量差,复购弱
- 动作:优化拉新渠道、首单后承接策略
讲解
这题本质在考你:整体指标变动,不要只看均值,要看结构。
本题考察能力
- 用户分层
- 留存与复购分析
- 结构性问题识别
易错点
- 只说“加强运营”
- 不区分新增问题还是老客流失问题
- 不把用户分层和动作挂钩
举一反三
如果题目变成“GMV 涨了但 DAU 没涨”,那就该优先看高价值用户贡献和客单价变化。
面试追问
为什么 DAU 涨不一定是好事?
因为 DAU 只代表来的人多,不代表来的用户有价值,也不代表转化和复购变好。
Q4(店铺类目分层)
- 题型:业务分析 / 店铺类目分层
- 难度:中上
- 来源标签:高频仿真
某月平台整体 GMV 同比增长 12%,但服饰类目 GMV 同比下降 8%。进一步看发现:
- 头部店铺 GMV 持平
- 腰部店铺 GMV 下降 15%
- 长尾店铺订单量增长,但退款率明显提升
请分析:
- 你如何判断问题主要出在哪一层?
- 你会补充看哪些指标?
- 给出 2-3 个最可能的业务原因;
- 给出运营建议。
答案
笔试里怎么写最稳
你可以写成:
“从题干看,平台整体 GMV 仍在增长,说明问题不是全平台大盘下滑,而是服饰类目内部出现结构性异常。进一步拆分后,头部店铺持平、腰部店铺明显下滑、长尾店铺订单增长但退款率升高,因此我会优先判断:核心问题在腰部店铺承接能力下降,同时长尾出现低质量增长。随后再通过曝光、转化率、客单价、退款率和履约指标验证这一判断。”
第一步:先抓“已经确定的异常”
第二步:再补指标验证,而不是一上来先列框架
第三步:最后才是“框架”
框架不是不要,而是要在定位完主问题后再用。
比如你可以说:
“从 GMV 拆解看,我会进一步验证服饰类目下滑到底来自流量、转化率还是客单价变化;但结合题干,优先怀疑的是腰部店铺流量/竞争力下降,以及长尾店铺低质量订单增加。”
这就比单独说一句
“GMV=流量×转化率×客单价”
强很多。
因为你把框架用在了题干上。
Q5(AB Test)
- 题型:A/B Test 业务决策
- 难度:中上
- 来源标签:面经还原
推荐页改版实验,A 为旧版,B 为新版,跑了 10 天:
- CTR:A 8.0%,B 8.8%,p < 0.01
- 下单转化率:A 4.2%,B 4.1%,p = 0.32
- 客单价:A 82 元,B 78 元,p < 0.05
- 次日留存:A 31%,B 32.5%,p < 0.05
你是否建议全量上线?请给出完整判断逻辑。
Q6(SQL)
- 题型:SQL
- 难度:中上
- 来源标签:高频仿真
有一张订单表
orders:user_id
shop_id
cat_id
order_id
pay_amt
pay_date
请写 SQL,统计 2026-06-01 到 2026-06-30 每个类目下 GMV 前 3 的店铺,输出:
cat_id
shop_id
gmv
rank_in_cat
Day10
Q1. SQL:活动页流量统计
题型:SQL
难度:中等
来源标签:高频仿真
有一张用户访问日志表
visit_log:字段名 | 含义 |
user_id | 用户ID |
dt | 日期 |
channel | 渠道 |
session_id | 会话ID |
is_activity_page | 是否活动页,1=是 |
page_view_id | 页面曝光ID |
请写 SQL,统计 2026-03-01 到 2026-03-07 每个
channel 的:- 活动页 UV
- 活动页 PV
- 人均浏览页数(PV / UV)
要求:
- 只统计
is_activity_page = 1
- 结果按
channel输出
- 请思考:这里为什么 UV 不能直接 count(user_id)?
答案
简单写法
复杂点的
Q2. SQL:新用户次日留存
Q3. SQL:WHERE 和 HAVING
题型:SQL + 概念理解
难度:中等
来源标签:高频仿真
有一张订单表
orders:字段名 | 含义 |
user_id | 用户ID |
order_id | 订单ID |
order_date | 下单日期 |
amount | 订单金额 |
is_paid | 是否支付,1=已支付 |
请写 SQL,找出 2026-03 月份支付订单数超过全站用户平均支付订单数 的用户,并输出:
user_id
paid_order_cnt
额外问题:
- 这里能不能直接写:
WHERE paid_order_cnt > AVG(paid_order_cnt)?
- 这题中哪些条件应该放
WHERE,哪些应该放HAVING?为什么?
Q4. 业务分析:指标体系设计
题型:指标体系 / 业务分析
难度:中等偏上
来源标签:高频仿真
拼多多准备对“活动会场页”进行一次改版,产品目标是:
提升活动页成交效率,同时不能明显伤害用户体验。
请你设计这次改版实验的指标体系,至少包含:
- 主指标(Primary Metric)
- 副指标 / 辅助指标(Secondary / Diagnostic Metrics)
- 护栏指标(Guardrail Metrics)
并回答:
- 为什么你选这个主指标,而不是只看 UV / CTR?
- 如果主指标提升,但护栏指标恶化,应该怎么判断是否上线?
- “主指标”“副指标”“护栏指标”之间分别承担什么角色?
我的答案
活动页成交效率会是我的主指标。因为主指标是我最希望关注的东西,而这次改版的目标是成交效率,那么当然主指标就是这个了。UV/CTR并没有直接显示成交效率。副指标我会选择曝光率。不建议全量上线,建议做灰度放量。主指标就是我们要研究的主要目的,副指标是拆解主指标得到的指标,护栏指标指的是一些保证交易质量的指标,比如退货率等。
标准答案
1. 主指标
我会把支付转化率或 GMV/UV 作为主指标。
原因:
- 改版目标是提升活动页成交效率,本质上是希望更多活动页流量最终转成成交
UV只代表流量规模,CTR只代表点击兴趣,都不是最终成交结果
支付转化率更直接反映“活动页流量变成支付用户的能力”
- 如果希望同时兼顾成交人数和金额,也可以用
GMV/UV衡量单位流量产出
2. 副指标 / 辅助指标
3. 护栏指标
护栏指标要回答的是:
为了提升成交效率,是否伤害了用户体验或交易质量。
我会看:
- 跳失率 / 页面退出率
- 页面停留时长异常下降
- 投诉率
- 退款率 / 退货率
- 下单后取消率
- 补贴成本 / 营销成本
- 客服咨询率
如果改版只是“更刺激下单”,但带来了更高退款率、更差体验,那就不能简单认为成功。
4. 如果主指标提升,但护栏指标恶化,怎么判断是否上线
不能只看主指标上涨就直接全量上线。
要看:
- 护栏指标恶化是否统计显著
- 恶化幅度是否业务可接受
- 主指标收益是否足以覆盖副作用
如果护栏指标明显变差,比如退款率、投诉率显著上升,那说明这次改版可能是在“透支体验换成交”,通常不建议直接全量,可以:
- 继续灰度
- 优化方案后再测
- 按用户群或渠道分层上线
5. 主指标 / 副指标 / 护栏指标分别是什么角色
你原答案里哪些地方要改
你原来这句:
活动页成交效率会是我的主指标。
要改成:
我会把支付转化率或 GMV/UV 作为主指标,用来衡量活动页流量最终转成成交的效率。
你原来这句:
副指标我会选择曝光率。
要改成:
副指标我会重点看 CTR、加购率、下单转化率、支付转化率、客单价等链路指标,用来拆解主指标变化来自哪个环节。
你原来这句:
护栏指标指的是一些保证交易质量的指标,比如退货率等。
可以扩成:
护栏指标我会看退款率、退货率、投诉率、页面跳失率、取消率等,确保改版没有通过损害体验或交易质量来换取短期成交。
给你一版更适合背诵的笔试答案
参考答案:
本次改版目标是提升活动页成交效率,因此我会优先选择支付转化率或 GMV/UV 作为主指标。因为 UV 更偏流量规模,CTR 更偏前链路点击兴趣,都不能直接代表最终成交结果,而支付转化率和 GMV/UV 更能体现活动页流量转化为真实成交的能力。
副指标方面,我会从两类来拆解。第一类是成交链路指标,包括活动页 CTR、加购率、下单转化率、支付转化率、客单价等,用于判断改版到底影响了哪一段转化链路。第二类是流量结构指标,包括活动页 UV、新老客占比、渠道占比、类目占比等,用于排查结果变化是否来自流量结构变化而不是页面改版本身。
护栏指标方面,我会重点关注用户体验和交易质量,比如跳失率、页面退出率、退款率、退货率、投诉率、下单取消率以及补贴成本等。如果主指标提升,但护栏指标明显恶化,说明改版可能是在透支用户体验或交易质量换取短期成交,这种情况下不建议直接全量上线,而应继续灰度观察或优化方案后再验证。
主指标回答“实验是否成功”,副指标回答“为什么成功或失败”,护栏指标回答“是否以牺牲其他关键目标为代价”。
Q5. 业务分析:结构变化 vs 维度拆解
题型:业务分析 / 解释题
难度:中等偏上
来源标签:综合改编
某活动上线后,整体转化率从 8% 提升到 9%。
但你按渠道拆解后发现:
- 自然流量转化率:下降
- 广告流量转化率:下降
- 私域流量转化率:下降
也就是说,每个渠道内部转化率都下降了,但整体转化率却上升了。
请回答:
- 这是什么现象?
- 更可能是“结构变化”还是“维度变化”?
- 你会怎么验证?
- 如果面试官追问“维度”和“结构”的区别,你怎么解释?
Q6. A/B Test:显著性检验
题型:统计 / A/B Test
难度:中等偏上
来源标签:面经还原
某商品详情页改版做了 A/B Test,实验结果如下:
- A 组(对照组):曝光 20,000,支付用户数 2,000
- B 组(实验组):曝光 20,000,支付用户数 2,180
请回答:
- 两组支付转化率分别是多少?
- B 组相对 A 组提升了多少?
- 你会用什么统计检验方法判断是否显著?
p-value的含义是什么?
- 如果
p < 0.05,能说明什么?不能说明什么?
不要求你把 z 检验公式完整推导到最后,但要说清楚思路。
Q7. pandas:复购率计算
题型:pandas
难度:中等
来源标签:高频仿真
有一个 DataFrame
df,字段如下:user_id
order_id
order_date
is_paid
定义:
- “首购用户”:在 2026-03-01 到 2026-03-07 期间首次支付成功的用户
- “7日内复购用户”:首购后 7 天内再次支付成功至少 1 次的用户
请用 pandas 写出核心代码,计算:
- 首购用户数
- 7日内复购用户数
- 7日内复购率
要求:
- 只统计
is_paid = 1
- 同一用户同一天多单也算复购
- 代码尽量简洁清晰
Q8. 机器学习基础:概念辨析
题型:机器学习基础
难度:中等
来源标签:高频仿真
请简答下面 4 个问题:
- 为什么做 PCA 前通常要先标准化?
- PCA 是“特征选择”还是“特征提取”?为什么?
- 随机森林和 XGBoost 的核心区别是什么?
- 逻辑回归里的
logit、sigmoid、概率输出三者是什么关系?
要求:
- 每问控制在 3-5 句话内
- 不要只背定义,要讲“为什么”
DAY11(主攻SQL)
Q1 基础聚合 + 条件过滤
表
orders字段 | 含义 |
order_id | 订单id |
user_id | 用户id |
order_date | 下单日期 |
pay_amount | 支付金额 |
is_paid | 是否支付成功,1成功0失败 |
题目:
统计 2026-03-01 到 2026-03-07 每天的:
- 下单用户数
order_uv
- 支付成功订单数
paid_order_cnt
- 支付成功 GMV
paid_gmv
结果按日期升序输出。
答案
Q2 分组聚合 + HAVING
表
orders题目:
统计 2026-03 月 支付成功订单数 大于当月用户平均支付成功订单数 的用户
user_id 及其支付成功订单数 paid_order_cnt。Q3 多表 JOIN
表
user_register字段 | 含义 |
user_id | 用户id |
register_date | 注册日期 |
channel | 注册渠道 |
表
user_login字段 | 含义 |
user_id | 用户id |
login_date | 登录日期 |
题目:
统计 2026-03-01 到 2026-03-07 每天注册的新用户数
new_user_cnt,以及这些用户在 注册当天登录 的人数 same_day_login_cnt。结果按
register_date 升序输出。我的答案
答案
Q4 注册7天内未成功支付过订单的用户数
表
user_register字段 | 含义 |
user_id | 用户id |
register_date | 注册日期 |
channel | 注册渠道 |
表
orders字段 | 含义 |
order_id | 订单id |
user_id | 用户id |
order_date | 下单日期 |
pay_amount | 支付金额 |
is_paid | 是否支付成功,1成功0失败 |
题目:
说明:
- 注册当天算在 7 天内
- 只看
is_paid = 1
我的答案
答案
Q5 去重口径
表
visit_log字段 | 含义 |
user_id | 用户id |
visit_date | 访问日期 |
page | 页面名 |
channel | 渠道 |
题目:
统计 2026-03-01 到 2026-03-07 每个渠道访问
activity_page 页面的:- UV
- PV
结果按
channel 输出。Q6 条件聚合 / CASE WHEN
表
orders字段 | 含义 |
order_id | 订单id |
user_id | 用户id |
order_date | 下单日期 |
pay_amount | 支付金额 |
is_paid | 是否支付成功,1成功0失败 |
题目:
统计 2026-03 月 每个用户的:
- 总订单数
order_cnt
- 支付成功订单数
paid_cnt
- 支付失败订单数
failed_cnt
- 支付成功率
paid_rate
只输出总订单数不少于 3 单的用户。
答案
Q7 次日留存
表
user_register字段 | 含义 |
user_id | 用户id |
register_date | 注册日期 |
channel | 注册渠道 |
表
user_login字段 | 含义 |
user_id | 用户id |
login_date | 登录日期 |
题目:
按注册日期统计 次日留存率。
输出字段:
register_date
register_user_cnt
d1_retain_user_cnt
d1_retain_rate
说明:
- 次日留存 = 注册次日登录的注册用户数 / 当天注册用户数
答案
Q8 漏斗
Q9 一个东西后紧接着另一个东西(LEAD/LAG)
表
event_log字段 | 含义 |
user_id | 用户id |
event_time | 事件时间 |
event_name | 事件名,可能为 exposure / click / add_cart / pay |
题目:
找出在 同一天内,发生过
click 后紧接着就是 pay 的用户数。说明:
- “紧接着”指按
event_time排序后下一条事件
- 只看
2026-03-01
答案
Q10 TopN / 分组排名
表
orders字段 | 含义 |
order_id | 订单id |
user_id | 用户id |
order_date | 下单日期 |
pay_amount | 支付金额 |
is_paid | 是否支付成功,1成功0失败 |
题目:
统计 2026-03 月 每个渠道
channel 下,支付成功 GMV 前 3 的用户。输出:
channel
user_id
gmv
rk
若并列,使用
dense_rank()。假设
orders 表里有字段 channel。答案
Q11 窗口函数累计和(首次到达或超过)
表
task_info字段 | 含义 |
user_id | 用户id |
task_id | 任务id |
priority | 优先级,数字越小越优先 |
duration | 任务耗时,单位分钟 |
deadline | 截止时间,格式如 2026-03-01 18:00:00 |
start_time | 开始执行时间,格式如 2026-03-01 09:00:00 |
题目:
每个用户的任务按
priority 从小到大串行执行。求会 超出 deadline 的任务。
输出:
user_id
task_id
finish_time
答案
Q12 连续登录 / 连续日期分组
表
user_login题目:
找出每个用户最长连续登录天数。
输出:
user_id
max_continue_days
Q13 连续 id 分组
表
tmp字段 | 含义 |
id | 整数id |
题目:
tmp 表中的 id 可能不连续。请把连续的 id 归为一组,输出每组的:- 起始 id
start_id
- 结束 id
end_id
- 组内个数
cnt
例如 1,2,3,7,8,10
则分成
[1,3] [7,8] [10,10]Q14 月份对比 / 自连接或条件聚合
表
product_price字段 | 含义 |
product_id | 商品id |
stat_month | 月份,格式 2026-08 |
avg_price | 月均价 |
题目:
找出 2026-09 月均价 低于 2026-08 月均价的 80% 的商品
product_id。Q15 NTILE 分桶
表
shop_gmv字段 | 含义 |
shop_id | 店铺id |
gmv | GMV |
题目:
按
gmv 从高到低将店铺平均分成 10 桶,输出:shop_id
gmv
bucket
Q16 字符串拆分
表
order_info字段 | 含义 |
order_id | 订单id |
sku_info | 商品串,格式如 1001:2,1002:1,1003:4,表示 sku_id:数量 |
题目:
把
sku_info 拆成多行,输出:order_id
sku_id
sku_cnt
Q17 时间处理
表
event_log题目:
统计 2026-03-01 每小时的活跃用户数
active_uv。输出:
hour
active_uv
其中
hour 格式形如 00 到 23。Q18 最新一条记录去重
表
user_profile_log字段 | 含义 |
user_id | 用户id |
city | 城市 |
update_time | 更新时间 |
题目:
取每个用户最新的一条城市记录,输出:
user_id
city
update_time
Q19 多表漏斗综合题
表
visit_log字段 | 含义 |
user_id | 用户id |
dt | 日期 |
is_activity_page | 是否活动页,1是0否 |
表
orders字段 | 含义 |
user_id | 用户id |
order_date | 下单日期 |
is_paid | 是否支付成功 |
pay_amount | 支付金额 |
题目:
统计 2026-03-01 到 2026-03-07 期间访问过活动页的用户中:
- 活动页 UV
- 下单用户数
- 支付用户数
- 支付 GMV
要求用户维度去重。
Q20 综合压轴题
表
coupon_receive字段 | 含义 |
user_id | 用户id |
coupon_id | 券id |
receive_time | 领券时间 |
表
coupon_use字段 | 含义 |
user_id | 用户id |
coupon_id | 券id |
use_time | 核销时间 |
order_id | 订单id |
题目:
统计 2026-03 月 每张券的:
- 领券人数
receive_uv
- 核销人数
use_uv
- 核销率
use_rate
说明:
- 领过券的人才算分母
- 同一用户对同一券多次领取只算 1 人
- 同一用户对同一券多次核销只算 1 人
题目归纳 & 答题模版
一、SQL 题归纳
模版 1:按天统计 + 多表拼接
出现频率: Day1 Q1 / Day2 Q1 / Day2 Q6 / Day8 Q1
题目共性: 统计每天的新增用户数、DAU、各渠道 UV/GMV 等,数据来源分散在多张表。
固定写法:
关键函数:
COUNT(DISTINCT user_id)→ 去重人数
COALESCE(x, 0)→ 无数据补零
RECURSIVE date_dim→ 日历表补全日期
易错点:
- 把注册表和登录表直接 join,导致重复计数
- 忘记
DISTINCT
- 某天没数据时没有补 0
模版 2:留存率计算
出现频率: Day1 Q2 / Day2 Q2 / Day3 Q2
题目共性: 统计注册用户的次日/N日留存率,可按天或按渠道分组。
固定写法:
变体:
- 3日留存 →
INTERVAL 3 DAY
- 7日留存 →
INTERVAL 7 DAY
- 按渠道 →
GROUP BY channel
- 按天+渠道 →
GROUP BY register_date, channel
易错点:
- 写成
register_date = login_date(变成当日登录,不是次日留存)
- 没对登录表去重
- 留存率没
ROUND(..., 4)
模版 3:先聚合再排名 (TopN)
出现频率: Day1 Q4 / Day2 Q4 / Day3 Q4 / Day9 Q6
题目共性: 各类目 GMV 前 N 名类目/店铺/用户。
固定写法:
分组内排名变体:
三种排名函数:
ROW_NUMBER()→ 强制不并列 (1,2,3)
RANK()→ 并列跳号 (1,1,3)
DENSE_RANK()→ 并列不跳号 (1,1,2),最适合 TopN
模版 4:漏斗转化 + HAVING 筛选
出现频率: Day3 Q1 / Day3 Q3 / Day7 Q3
题目共性: 注册→登录→下单→支付的漏斗统计,或筛选满足条件的用户。
漏斗写法:
HAVING 写法:
归因窗口写法(Day7 Q3):
二、业务分析题归纳
模版 5:指标下滑诊断框架
出现频率: Day8 Q2 / Day9 Q1 / Day9 Q4
题目共性: "GMV/订单量下滑了 X%,帮我看看原因。"
五步诊断法:
Step 1:拆公式
- GMV = UV × 转化率 × 客单价
- GMV = 买家数 × 购买频次 × 客单价
Step 2:定位一级问题
- 是流量跌?转化跌?客单价跌?
Step 3:维度下钻
- 时间(按日/小时)
- 用户(新客/老客)
- 渠道(自然/推送/广告)
- 类目/价格带/商家层级/地域
Step 4:判断性质
- 环比同比是否超出历史波动
- 是否有活动/季节因素
- 是否供给变化(缺货、商家退出)
Step 5:输出结论
- 结论 → 证据 → 原因判断 → 行动建议
模版 6:活动效果评估框架
出现频率: Day8 Q3 / Day9 Q2
题目共性: "活动 GMV 涨了,能说明成功吗?"
核心观点: GMV 增长 ≠ 活动成功
四维度评估:
- 规模:
增量GMV /增量订单 /增量用户
- 效率:ROI / 补贴率 / CAC
- 质量:退款率 / 客诉率 / 履约时效
- 长期价值:新客留存 / 复购率 / LTV
核心方法:Cohort 分析
- 活动新客单独拉 7日/30日留存、复购
- 老客活动前后购买频次对比
关键判断:
- 区分"短期拉新有效" vs "透支长期价值"
- 如果新客只下一单就流失 + 老客活动后沉默 → 透支
模版 7:搜索推荐指标排查
出现频率: Day8 Q6 / Day9 Q3
题目共性: 搜索/推荐场景中多个指标联动变化,判断问题出在哪。
排查框架:漏斗层 + 结构层
漏斗层: 逐层看从哪里开始劣化
曝光 → 点击 → 详情页 → 加购 → 下单 → 支付
结构层: 按维度切片
新老用户 / 价格带 / 类目 / 渠道 / 查询词类型
关键逻辑:
- PV 没跌但后链路变差 → 不是流量问题,是流量质量问题
- DAU 涨但复购降 → 可能是低质新客稀释了整体指标
三、A/B Test 题归纳
模版 8:实验设计五步法
出现频率: Day7 Q1 / Day8 Q4
题目共性: 给一个产品改动,设计 A/B Test 方案。
五步法:
- 实验目标:验证 X 改动是否提升 Y 指标
- 指标体系:
- 主指标:支付转化率(不是 CTR!)
- 辅助指标:CTR / 加购率 / GMV per UV
- 护栏指标:退款率 / 客单价 / 跳出率 / 客诉率
- 随机化:优先用户级随机(避免污染)
- 风险控制:监控护栏指标
- 上线决策:
- 主指标显著提升 + 护栏不恶化 → 放量
- 主指标不显著 / 护栏恶化 → 不上线
模版 9:p-value 不显著时的标准回应
出现频率: Day6 Q2 / Day6 Q5 / Day7 Q2 / Day8 Q5
题目共性: p > 0.05,业务方说"涨了就上线",你怎么回应?
三句话框架:
- "p > 0.05,当前证据不足以认为有显著差异"
- "不显著 ≠ 没效果,可能是样本不够 / 效果太小"
- "建议扩大样本 / 延长周期 / 分层看是否局部显著"
p-value 正确解释:
"在原假设成立前提下,观察到这么大或更极端差异的概率"
❌ 不是"原假设为真的概率"
❌ 不是"B方案有效的概率"
面对业务压力的回应:
"数值上涨不等于实验成功。证据不够强,建议补充样本再决策,而不是直接承担误判风险。"
模版 10:伪正向实验识别
出现频率: Day6 Q7 / Day7 Q4 / Day7 Q6 / Day8 Q4 / Day9 Q5
题目共性: CTR 涨了但支付没涨 / 客单价降 / 退款升,要不要上线?
识别信号:
前链路好(CTR↑ 停留↑)+ 后链路差(支付↓ 客单↓ 退款↑)= 吸引了更多低质量点击
标准分析路径:
- 拆 GMV = UV × CTR × 支付转化率 × 客单价
- 排查流量质量 / 商品结构 / 漏斗断层 / 用户预期
- 分人群看是否所有群体都受影响
结论框架:
"前链路改善不等于业务成功。关键是看最终有没有高质量成交。"
→ 暂不放量,先分层排查
四、统计基础题归纳
统计概念速记
出现频率: Day1 Q5 / Day2 Q5 / Day6 Q1 / Day6 Q3 / Day6 Q6
均值 vs 中位数: 均值受极端值影响大,中位数更鲁棒
极差: 对极端值最敏感
分布速查:
- 是/否 → 伯努利分布
- n次是/否的总数 → 二项分布
- 单位时间内发生次数 → 泊松分布
- 大量样本的均值 → 正态分布(中心极限定理)
Type I Error(假阳性): 没效果误判为有
Type II Error(假阴性): 有效果没检出
Power = 1 - P(Type II Error)
标准差 vs 标准误:
- 标准差:衡量个体数据的离散程度
- 标准误:衡量样本均值的波动程度(= 标准差 / √n)
置信区间包含 0 → 不显著
右偏分布: 大多数值集中在左侧,少数极大值拉长右尾(如 GMV、客单价)

