SQL实战篇:SQL解决连续X天的问题
生活随笔
收集整理的這篇文章主要介紹了
SQL实战篇:SQL解决连续X天的问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
上一節(jié)內(nèi)容,通過用戶留存率的案例,講解了解決近X天問題的思路,接下來,在本節(jié)內(nèi)容來看看關(guān)于連續(xù)X天的問題,該類問題是面試和實(shí)際業(yè)務(wù)中經(jīng)常需要解決的問題。
首先對連續(xù)指標(biāo)、做個(gè)定義,如下:
- 1日連續(xù):當(dāng)日登錄后,第二天也登錄了,比如2021.2.10登錄過,2021.2.11登錄的算作1日連續(xù) 。
- 3日連續(xù):當(dāng)日登錄后,第二和三天也登錄了,比如2021.2.10登錄過,2021.2.11和2021.2.12登錄的算作3日連續(xù) 。
- 以此類推···
現(xiàn)假設(shè),有一張用戶登錄表t_user_login,字段user_id和login_time分別表示用戶id和登陸時(shí)間。接下來,我們通過SQL來求連續(xù)3日、7日登陸的用戶。
一般,解決此類連續(xù)X天問題的思路如下:
- 第一步,可以使用窗口函數(shù)對user_id分組排序rn;
- 第二步,用登陸時(shí)間減去排序后的序號(hào)rn;
- 第三步,如果日期連續(xù)的話,則得到的這個(gè)日期會(huì)相同。
下面,我們通過一個(gè)案例來進(jìn)行說明。
首先,我們先建t_user_login表。
DROP TABLE IF EXISTS `總結(jié)
以上是生活随笔為你收集整理的SQL实战篇:SQL解决连续X天的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL实战篇:SQL解决近X天的问题
- 下一篇: SQL实战篇:SQL优化问题