0


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

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

1. 表结构:

  1. createtable`lotable`(
  2. uid int,
  3. dt string)ROW FORMAT DELIMITED
  4. FIELDSTERMINATEDBY'|'
  5. LINE TERMINATEDBY'\n';

2. 用户表数据:

  1. 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代码实现逻辑:

  1. select
  2. t3.uid,max(t3,cnt)from(select
  3. t2.uid,
  4. t2.group_id,count(*)as cnt
  5. from(select
  6. t1.uid,
  7. t1.dt,
  8. t1.rn,
  9. date_sub(t1.dt,t1.rn) group_id
  10. from(select
  11. uid,
  12. dt,
  13. row_number()over(partitionby id orderby dt) rn
  14. from logtable
  15. groupby uid,dt
  16. ) t1
  17. ) t2
  18. groupby id,group_id
  19. ) t3
  20. groupby uid ;

在这里插入图片描述


本文转载自: https://blog.csdn.net/TheShy1231/article/details/126373719
版权归原作者 董耕寿 Vol 所有, 如有侵权,请联系我们删除。

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

还没有评论