现有用户行为日志表tb_user_log
问题:统计活跃间隔对用户分级后,各活跃等级用户占比,结果保留两位小数,且按占比降序排序。
注:
- 用户等级标准简化为:忠实用户(近7天活跃过且非新晋用户)、新晋用户(近7天新增)、沉睡用户(近7天未活跃但更早前活跃过)、流失用户(近30天未活跃但更早前活跃过)。
- 假设今天就是数据中所有日期的最大值。
- 近7天表示包含当天T的近7天,即闭区间[T-6, T]。
问题分解:
-
计算每个用户最早最晚活跃日期(作为子表t_uid_first_last):
- 按用户ID分组:GROUP BY uid
- 统计最早活跃:MIN(DATE(in_time)) as first_dt
- 统计最晚活跃:MAX(DATE(out_time)) as last_dt
-
计算当前日期和总用户数(作为子表t_overall_info):
- 获取当前日期:MAX(DATE(out_time)) as cur_d