题解 | #找出待召回的流失用户#
找出待召回的流失用户
https://www.nowcoder.com/practice/74ec0a3766bf480ab7690486943678a4
考察内容:count(distinct)、max,having,datediff,order by
思路:
① 按用户分组,统计每个用户的登录天数和登录次数
② 取每个用户最后一次登录日期,表中最大日期作为当前日期,用 having 筛选用户最后一次登录日期距今30天及以上且至少登录过3天或4次的用户
③ 按要求排序输出
select uid, count(distinct login_date) as days, count(id) as times from user_login_tb as a group by uid having (days >= 3 or times >= 4) and datediff((select max(login_date) from user_login_tb), max(login_date))>=30 order by days desc, times desc ;
