登陆表:login_table
字段user_id,login_dt
user_id | login_dt |
a | 2020-06-01 |
a | 2020-06-02 |
a | 2020-06-03 |
b | 2020-06-01 |
b | 2020-06-02 |
创建表:
create table if not exists adm_sdk_activity_analysis_total(
user_id string comment '用户id'
,login_date string comment '登录日期'
) STORED as orc;
解题思路:(借助rownumber)
1.根据user_id进行去重,按照登陆日期进行排序后,拿到rn
2.连续登陆的日期减去rn会得到相同的日期
3.根据user_id和相减后的值进行分组就能得到连续登陆天数
sql:
select user_id
,unify_login_date
,min(login_date) as start_date
,