SQL实战篇:SQL解决近X天的问题
生活随笔
收集整理的這篇文章主要介紹了
SQL实战篇:SQL解决近X天的问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在面試和實(shí)際項(xiàng)目中,我們經(jīng)常會(huì)遇到這樣兩類問題,即以時(shí)間為軸線,沿著時(shí)間軸分析過去一段時(shí)間的用戶特征或者行為。
一類是根據(jù)用戶第一次訪問的時(shí)間統(tǒng)計(jì)最近N天的行為特征,稱之為近X天問題;另一類是根據(jù)用戶第一次訪問的時(shí)間統(tǒng)計(jì)連續(xù)N天的行為特征,稱之為連續(xù)X天問題。
下面,先講下近X天問題的解決方法。一般在BI報(bào)表里面,關(guān)于用戶分析時(shí),用戶留存是個(gè)不可缺少的分析,而業(yè)界比較成熟的判斷標(biāo)準(zhǔn)就是計(jì)算一些具體的指標(biāo),包括計(jì)算用戶次日、3日、7日、30日和90日的留存率。
這些指標(biāo)的通俗定義如下:
- 次日留存:當(dāng)日登錄后,第二天也登錄了,比如2021.2.10登錄過,2021.2.11登錄的算作次日留存 。
- 三日留存:當(dāng)日登錄后,第三天也登錄了,比如2021.2.10登錄過,2021.2.12登錄的算作3日留存 。
- 七日留存:當(dāng)日登錄后,第七天也登錄了,比如2021.2.10登錄過,2021.2.16登錄的算作7日留存 。
- 以此類推···
現(xiàn)假設(shè),有一張用戶登錄表t_user_login,字段user_id和login_time分別表示新增用戶id和登陸時(shí)間。接下來,我們計(jì)算用戶次日、3日、7日、30日和90日的留存率。
一般解決此類近X天問題的思路如下:
- 第一步,獲取新增用戶最早的登陸時(shí)間,標(biāo)記為新的一列first_login_time;
- 第二步,計(jì)算最早登陸時(shí)間和所有登陸時(shí)間之前的天數(shù)差值,即login_time -
first_login_time,標(biāo)記為新的一列l(wèi)ogin_by_day
總結(jié)
以上是生活随笔為你收集整理的SQL实战篇:SQL解决近X天的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL实战篇:SQL窗口函数及真题
- 下一篇: SQL实战篇:SQL解决连续X天的问题