返回路线图
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)。