SQL 课程 19:产品转化漏斗分析

漏斗分析是在问:一批对象经过一系列阶段后,还剩下多少?产品经理会用它观察注册、激活、付费等步骤;销售团队也会用它观察商机从接触到成交的过程。

本课使用 sales_pipeline 的 deal_stage 做一个 CRM 商机漏斗:Prospecting(待开发)→ Engaging(跟进中)→ Won(已成交)。Lost(已流失)是离开主路径的结果,需要单独观察。

需要先说明数据边界:当前表记录的是每笔商机的阶段快照,不是同一个用户逐步经过每个阶段的事件日志。因此,本课得到的是“商机阶段分布和成交率练习”,不能直接当成严格的用户转化率。

先汇总阶段,再计算漏斗指标
WITH stage_counts AS (
  SELECT deal_stage, COUNT(*) AS opportunity_count
  FROM sales_pipeline
  GROUP BY deal_stage
)
SELECT deal_stage, opportunity_count
FROM stage_counts
ORDER BY ...;

漏斗的第一步:先把每个阶段数清楚

最基础的漏斗不是马上算百分比,而是先回答“每个阶段有多少笔商机”。COUNT(*) 统计记录数,GROUP BY deal_stage 把记录按阶段分组。只有分组结果正确,后面的比例才有意义。

数据库默认按字母顺序返回阶段,但业务漏斗需要自己的顺序。可以用 CASE WHEN 给阶段编号:Prospecting 排第 1,Engaging 排第 2,Won 排第 3,Lost 排第 4。

按业务顺序统计商机阶段
SELECT deal_stage,
       COUNT(*) AS opportunity_count
FROM sales_pipeline
GROUP BY deal_stage
ORDER BY CASE deal_stage
  WHEN 'Prospecting' THEN 1
  WHEN 'Engaging' THEN 2
  WHEN 'Won' THEN 3
  WHEN 'Lost' THEN 4
END;

小提醒:页面会把 Won 显示成“已成交”,但 SQL 条件和排序仍要使用原始值 Won。

数量、占比和成交率不是一回事

阶段数量回答“有多少笔”,阶段占比回答“全部商机中这一阶段占多少”。例如一个阶段有 1,000 笔,不代表这 1,000 笔都来自同一批用户,也不代表它们最终都会成交。

本课还会计算整体 Won rate:已成交商机数 ÷ 全部商机数。这个指标描述当前 CRM 管道中的成交比例;如果要分析严格的用户转化,还需要用户事件表和明确的进入漏斗时间。

本课使用的漏斗指标

指标计算方式回答的问题
阶段数量COUNT(*)每个阶段有多少笔商机?
阶段占比阶段数量 ÷ 全部数量全部商机中有多少在这个阶段?
成交率Won 数量 ÷ 全部数量当前管道中有多少笔已成交?

按产品拆开,寻找漏斗差异

整体成交率可能掩盖产品之间的差异。按 product 分组后,可以同时观察每种产品的商机数量、成交数量和成交率。分析时要同时看分母:只有几笔商机的产品,即使成交率很高,也未必比大体量产品更稳定。

练习

本课会核对分组结果、阶段顺序、比例计算和产品维度的完整结果;请区分阶段占比与成交率。

表格:sales_pipeline(商机)

查询返回 0 行。

显示第 00
1 / 1
正在准备浏览器内 SQL 数据库…