一、题目:求用户最大连续活跃天数
1. 表结构:
createtable`lotable`(
uid int,
dt string)ROW FORMAT DELIMITED
FIELDSTERMINATEDBY'|'
LINE TERMINATEDBY'\n';
2. 用户表数据:
1|2022-07-111|2022-07-121|2022-07-131|2022-07-141|2022-07-151|2022-07-161|2022-07-171|2022-07-182|2022-07-122|2022-07-132|2022-07-142|2022-07-152|2022-07-162|2022-07-212|2022-07-223|2022-08-013|2022-08-023|2022-08-033|2022-08-043|2022-08-053|2022-08-063|2022-08-073|2022-08-083|2022-08-093|2022-08-103|2022-08-11
3. SQL代码实现逻辑:
select
t3.uid,max(t3,cnt)from(select
t2.uid,
t2.group_id,count(*)as cnt
from(select
t1.uid,
t1.dt,
t1.rn,
date_sub(t1.dt,t1.rn) group_id
from(select
uid,
dt,
row_number()over(partitionby id orderby dt) rn
from logtable
groupby uid,dt
) t1
) t2
groupby id,group_id
) t3
groupby uid ;
本文转载自: https://blog.csdn.net/TheShy1231/article/details/126373719
版权归原作者 董耕寿 Vol 所有, 如有侵权,请联系我们删除。
版权归原作者 董耕寿 Vol 所有, 如有侵权,请联系我们删除。