概述
面试中经常会遇到使用SQL解决连续N天问题,此类问题最关键的点在于如何找到“连续”的规律;
示例:已有一张用户登录日期表,表中有用户ID和登录日期,找出连续3天登录的所有用户ID。
用户ID | 登录日期 |
---|---|
1001 | 20210101 |
1001 | 20210102 |
1001 | 20210103 |
1002 | 20210101 |
1002 | 20210102 |
1002 | 20210104 |
1003 | 20210101 |
方法一:
使用登录日期与用户ID分组排名的差值相等规律,如果用户登录日期连续,则登录日期与排名的差值相等。
用户ID | 登录日期 | 排序 | 日期差 |
---|---|---|---|
1001 | 20210101 | 1 | 20210100 |
1001 | 20210102 | 2 | 20210100 |
1001 | 20210103 | 3 | 20210100 |
1002 | 20210101 | 1 | 20210100 |
1002 | 20210102 | 2 | 20210100 |
1002 | 20210104 | 3 | 20210101 |
1003 | 20210101 | 1 | 20210100 |
将连续问题转换为按用户分组统计日期差个数,代码如下:
结果如下图:
最后
以上就是心灵美大地为你收集整理的SQL解决连续n天登录问题的全部内容,希望文章能够帮你解决SQL解决连续n天登录问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复