SQL 课程 13:使用 CASE WHEN 进行业务分类

产品分析中,原始字段往往不能直接回答业务问题。比如商机处于什么阶段、成交金额属于哪个区间,都需要先转成方便统计和沟通的业务分类。

CASE WHEN 可以按顺序判断条件,并为每条记录返回一个新标签。它常被用于用户分群、订单状态、渠道归因和指标口径定义。

本课使用 sales_pipeline 商机表。请把已成交商机按成交金额分为“高价值成交”和“一般成交”,并为流失或仍在推进的商机增加清晰标签。

使用 CASE WHEN 创建业务分类
CASE
  WHEN 条件 THEN 分类结果
  WHEN 条件 THEN 分类结果
  ELSE 默认分类
END AS 分类字段名

CASE WHEN 像给每条商机贴标签

数据库会从上到下检查 WHEN 条件,遇到第一个符合的条件就停止。因此,更具体的规则要放在前面:先判断“已成交且金额不低于 1,000”,再判断“其他已成交”。

ELSE 用来接住没有命中任何 WHEN 的记录。没有 ELSE 时,未命中的结果会显示为空值,分析时不容易看出它代表什么。

先判断更具体的高价值成交
CASE
  WHEN deal_stage = 'Won' AND close_value >= 1000 THEN '高价值成交'
  WHEN deal_stage = 'Won' THEN '一般成交'
  ELSE '推进中'
END AS opportunity_type

小提醒:deal_stage 中的 Won 是原始数据值,页面显示为“已成交”。SQL 条件仍需要使用 Won。

练习

每次只完成右侧当前高亮的一项任务;通过后,下一项才会解锁。

表格:sales_pipeline(商机)

查询返回 0 行。

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