数据方向必考SQL 连续登录问题

#数据人的面试交流地##数据人##SQL面试#
**均为社区同学面试遇到题目**
题目:找出连续登录5天的用户
图1为模拟数据
图2为运行结果
Hsql解法如下
select
uid,
curr,
5_day
from (
        select 
                uid,
                to_date(`login_date`) curr, --当前日期
                last_value(to_date(`login_date`)) 
                        over(partition by uid order by to_date(`login_date`) asc 
                                rows BETWEEN  CURRENT ROW and 4 FOLLOWING) as 5_day, -- 当前日期后四天的日期值
                DATEDIFF(
                last_value(to_date(`login_date`)) 
                        over(partition by uid order by to_date(`login_date`) asc 
                                rows BETWEEN  CURRENT ROW and 4 FOLLOWING),
                to_date(`login_date`)) AS DRFF_DAY -- 当前日期后四天的日期值 - --当前日期 = 最近五次登录的间隔天数,间隔4才是连续登录5天
        from 
                 (select distinct * from tmp) t1 --一个用户一天可能登录多次,只保留一次
) t1 where DRFF_DAY == 4#数据人的面试交流地#
更多实战题目及解法思路都在社区!
全部评论

相关推荐

1. 请先做个简单的自我介绍?重点介绍一下自己的相关经历。2. 你最近5年的职业规划是什么,能否详细的谈一下?3. 你应聘这个岗位的优势是什么?劣势是什么?(各说三点)4. 为什么选择应聘我们公司?5. 你期望的薪酬是多少?6. 迈瑞医疗业务广泛,数据来源复杂多样,谈谈你过往处理复杂数据源融合分析的经验与方法。7. 迈瑞医疗注重产品研发创新,在以往工作中,你如何通过数据分析为研发方向提供有效支持?8. 我们公司业务涉及国内外市场,面对不同地区的数据差异,你有怎样的分析策略与实践经验?9. 迈瑞医疗产品种类丰富,在数据挖掘过程中,怎样确保针对不同产品线的数据挖掘精准有效?10. 讲述一次你运用数据分析解决业务难题的经历,类似迈瑞医疗这种医疗行业业务场景。11. 迈瑞医疗数据量庞大,在数据清洗环节,你通常会采取哪些高效且准确的方法与步骤?12. 对于迈瑞医疗海量的医疗数据,你如何选择合适的数据分析工具和技术栈来保障工作效率?13. 当面对紧急且复杂的数据分析任务,类似迈瑞医疗突发项目需求,你怎样安排工作流程?14. 迈瑞医疗有多个业务部门,谈谈你在跨部门合作进行数据分析项目时的沟通与协作经验。15. 举例说明你如何运用数据分析为企业优化资源配置,这对迈瑞医疗资源管理有何借鉴?16. 迈瑞医疗注重医疗数据安全,在数据分析过程中,你怎样确保数据的保密性和完整性?
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务