SQL 道场
返回路线图

MODULE 7 / Senior

实战场景

把 SQL 用到业务分析:留存、漏斗、分群、连续活跃、DAU。

实战场景:把 SQL 用到业务分析

senior 数据岗每天都在算这些——留存、漏斗、分群。

留存 cohort

把用户按"注册月"分组(cohort),看后续各月还有多少人活跃。次月留存 = 注册当月活跃、且次月仍活跃的用户(比例)。date_trunc('month', ts) 把日期归到月初便于按月比较。

漏斗 funnel

一串递进事件(浏览 → 加购 → 下单),每步人数递减;转化率 = 末步人数 / 首步人数。用 count(DISTINCT user_id) FILTER (WHERE kind = 'view') 一次算出各步的去重人数。

用户分群

按行为(如购买次数)用 CASE 分桶成 高 / 中 / 低 价值。

gaps-and-islands(连续区间)

求"连续活跃天数"的经典套路:连续日期减去其行号 row_number() 得到一个不变的分组键,同一键即一段连续区间,count 就是长度。

DAU

每天活跃用户数 = 按天 count(DISTINCT user_id)。

练习(8)

  1. 1.注册 cohort 规模难度 3
  2. 2.漏斗各步人数难度 4
  3. 3.漏斗转化率难度 4
  4. 4.次月留存用户数难度 5
  5. 5.用户价值分群难度 4
  6. 6.最长连续登录天数(gaps-and-islands)难度 5
  7. 7.每日活跃用户 DAU难度 3
  8. 8.Boss:各 cohort 购买转化难度 5