昨晚上老同事聚会,一个同事说道一个面试问题没有一个人做出来,就是求连续日期登录次数最大的用户,同事说借助 rownumber即可求解,由于是喝酒聊天,也没有说详细的解决过程。今天早上想了下,终于想到了具体的解决思路。 登录时间里面有详细的时分秒数据,而我们的题目只要求连续的天数,所以使 ...
有一个用户登录流水表结构如下: 这样给它充值: 然后我们观察这些记录: 可以发现,A 用户从 连续登录了三天,从 连续登录了两天 B 用户从 连续登录了两天,在 只登录了一天 C 用户从 连续登录了两天 D 用户只在 登录了一天。 我们的任务是编写sql把用户连续登录的天数找出来。 首先,我们按用户分组,按登录时间升序排列一下,因为不同用户的记录毫无关系。 观察上表,我们可以发现,连续登录的用户, ...
2020-03-19 16:20 0 874 推荐指数:
昨晚上老同事聚会,一个同事说道一个面试问题没有一个人做出来,就是求连续日期登录次数最大的用户,同事说借助 rownumber即可求解,由于是喝酒聊天,也没有说详细的解决过程。今天早上想了下,终于想到了具体的解决思路。 登录时间里面有详细的时分秒数据,而我们的题目只要求连续的天数,所以使 ...
最近有个需求,计算用户连续登录的最大天数(这里使用prestoSql,使用hive也可以),先看下登录日志数据表hive.traffic.access_user只有两个字段:uid,day;日期辅助表hive.ods.dim_date,这个表只有一个字段day; 先说下思路 ...
昨天群上有人发个阿里的面试题,题目描述大概如下: 数据源:用户登录表,只有俩个字段,uid和dt 试用HQL抽取出连续登录了K天的用户uid 第一个想法就是直接用一个UDF解决,按uid分组,把dt收集起来然后在UDF里面判断是否满足条件 其中isExist的逻辑是判断 ...
如何判断连续: 根据用户id分组排序(rn),再用login_date减去排序的天数,记为date_fg,如果连续则date_fg相等 select user_id, count(1) cnt from (select user_id, login_date, row_number ...
==>>点击查看本系列文章目录 目录 1.创建项目 2.重写用户管理界面 3.用户管理 4.用户注册 5.用户登录 6.用户退出 7.自动数据迁移 8.启动应用 1.创建项目 项目中会多出如下红框内的用户身份管理的文件 ...
参考:https://blog.csdn.net/ganghaodream/article/details/100083543 SQL计算最长登录天数 计算最长登陆天数主要用两个函数:1.窗口函数row_number()over() 2.date_sub() 1.使用row_number ...
和上一个日期之间相差的天数 针对相差的天数大于2的做等差数列,区别是否连续天 ...