SQL实战篇:SQL解决连续X天的问题
生活随笔
收集整理的這篇文章主要介紹了
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 `總結
以上是生活随笔為你收集整理的SQL实战篇:SQL解决连续X天的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL实战篇:SQL解决近X天的问题
- 下一篇: SQL实战篇:SQL优化问题