0
点赞
收藏
分享

微信扫一扫

SQL实战篇:SQL解决连续X天的问题

上一节内容,通过用户留存率的案例,讲解了解决近X天问题的思路,接下来,在本节内容来看看关于连续X天的问题,该类问题是面试和实际业务中经常需要解决的问题。

首先对连续指标、做个定义,如下:

  • 1日连续:当日登录后,第二天也登录了,比如2021.2.10登录过,2021.2.11登录的算作1日连续 。
  • 3日连续:当日登录后,第二和三天也登录了,比如2021.2.10登录过,2021.2.11和2021.2.12登录的算作3日连续 。
  • 以此类推···

现假设,有一张用户登录表t_user_login,字段user_id和login_time分别表示用户id和登陆时间。接下来,我们通过SQL来求连续3日、7日登陆的用户。

一般,解决此类连续X天问题的思路如下:

  • 第一步,可以使用窗口函数对user_id分组排序rn;
  • 第二步,用登陆时间减去排序后的序号rn;
  • 第三步,如果日期连续的话,则得到的这个日期会相同。

下面,我们通过一个案例来进行说明。

首先,我们先建t_user_login表。

DROP TABLE IF EXISTS `
举报

相关推荐

0 条评论