sql实现连续登陆7天以上用户统计

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 19:45   60   0

测试数据:用户ID、登入日期

uid,dt
guid01,2018-02-28
guid01,2018-03-01
guid01,2018-03-02
guid01,2018-03-04
guid01,2018-03-05
guid01,2018-03-06
guid01,2018-03-07
guid02,2018-03-01
guid02,2018-03-02
guid02,2018-03-03
guid02,2018-03-06

步骤:

*操作步骤: * 1、我将用户分组,日期排序【升序】打上标记(为rn) * 2、dt - rn 为 dis * 3、我按照 用户和 dis分组,求总次数 为 counts * *4、找出 counts 大于 3的数

答案:

SELECT 
    t2.uid
 ,min(t1.dt) dt_min
 ,max(t2.dt) dt_max
 ,count(1) cnt
FROM (
 SELECT t1.uid
  ,t1.dt
  ,date_sub(dt, rn) dis(SELECT uid, dt, row_number() OVER (
    PARTITION uid ORDER BY dt
    ) FROM user_login_log) t1
 ) t2
GROUP BY t2.uid,t2.dis
HAVING cnt > 7;

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP