0


Hive面试题系列-求用户最大连续活跃天数 2

一、题目:求用户最大连续活跃天数

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 所有, 如有侵权,请联系我们删除。

“Hive面试题系列-求用户最大连续活跃天数 2”的评论:

还没有评论