hive连续天数统计思路

该博客介绍如何使用Hive解决统计用户最大连续登录天数的问题。通过分析测试数据,提出利用date_sub函数判断连续登录,并通过标记和统计相同标记的天数来找出最长连续登录记录。最后,取最大统计值即可得出连续登录的最大天数。

测试数据:
T1
Uid dt login_status(1登录成功,0异常)
1 2019-07-11 1
1 2019-07-12 1
1 2019-07-13 1
1 2019-07-14 1
1 2019-07-15 1
1 2019-07-16 1
1 2019-07-17 1
1 2019-07-18 1
2 2019-07-11 1
2 2019-07-12 1
2 2019-07-13 0
2 2019-07-14 1
2 2019-07-15 1
2 2019-07-16 0
2 2019-07-17 1
2 2019-07-18 0
3 2019-07-11 1
3 2019-07-12 1
3 2019-07-13 1
3 2019-07-14 1
3 2019-07-15 1
3 2019-07-16 1
3 2019-07-17 1
3 2019-07-18 1
需求:统计最大连续登录天数

--先对数据内的日期字段进行row_number排序,得到一列带标签的数据。
select
uid, 
dt, 
row_number() over(partition by uid order by dt) a 
from sql2
where login_status <> 0 --这里是过滤掉无效的登录信息。
;
得到如下结果:
uid      	 dt     			 a
1       2019-07-11      1
1       2019-07-12      2
1       2019-07-13      3
1       2019-07-14      4
1       2019-07-15      5
1       2019-07-16      6
1       2019-07-17      7
1       2019-07-18      8
2       2019-07-11      1
2       2019-07-12      2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值