SQL面试题每日一题之求解用户最长连续登录天数
之后会不定期更新每日一题sql系列。
SQL面试题每日一题系列内容均来自于网络以及实际使用情况收集,如与各大厂面试题有雷同,纯属巧合。
1.题目
问题:以下为多个用户每日登录记录数据,求解每个用户最长连续登录天数。
该问题为此还会衍生出,标记处连续登录n天用户。用户连续登录中出现的所有未登录日期等。具体之后进行分析计算演示,欢迎持续关注。
2.基础数据准备
create table if not exists temp.user_login_log (
`id` bigint comment '用户id',
`login_date` string comment '登录日期'
) comment '用户每日登录流水'
数据预览
id | login_date |
---|---|
1 | 2024-04-25 |
1 | 2024-04-26 |
1 | 2024-04-27 |
1 | 2024-04-28 |
1 | 2024-04-30 |
1 | 2024-05-01 |
1 | 2024-05-02 |
1 | 2024-05-04 |
1 | 2024-05-05 |
1 | 2024-05-06 |
1 | 2024-05-07 |
2 | 2024-04-25 |
2 | 2024-04-28 |
2 | 2024-05-01 |
2 | 2024-05-03 |
2 | 2024-05-04 |
3.问题分析
求解每个用户最长连续登录天数,考察的是对日期加减函数的使用以及对排序开窗函数的应用。排序开窗函数详见SQL窗口分析函数使用详解系列二之分组排序窗口函数
维度 | 评分 |
---|---|
题目难度 | ⭐️⭐️⭐️⭐️ |
题目清晰度 |