目录
一、问题:
hive sql实现查询连续n天登陆的用户
二、思想:
1、选出用户id,以及登陆日期,去重
2、窗口函数按照用户id分组,登陆日期不重复排序
3、date_sub归一化登陆日期
4、按照用户id和归一化后的日期 计算 登陆日期 的数量
三、代码:
select distinct user_id
from (
select user_id
, continue_date
, count(login_date) as continue_day_cnt
from (
select user_id
, login_date
, date_sub(login_date,row_number() over(partition by user_id order by login_date) )as continue_date
from (
select user_id
, substr(login_time, 1, 10) as login_date
--from dw.dw_user_login_log
FROM
(
select 1 as user_id
,'2020-10-04' as login_date
union all
select 1 as user_id
,'2020-10-0

最低0.47元/天 解锁文章
1175

被折叠的 条评论
为什么被折叠?



