連續登錄最長天數的用戶明細

背景:產品作了一個週期7天活動,用戶能夠每一天解鎖一個任務,完成後發放獎勵;微信

需求:用戶連續登錄明細數據及連續登錄天數;app

目的:用戶參與活動的興趣度;ui


活動海報圖:
spa


分析思路:.net


明細數據:3d


-- 根據用戶ID分組按日期排序,將日期和分組序號相減獲得連續登錄的開始日期,若是開始日期相同說明連續登錄orm

- 日期減去分區排序的序號,若是新日期相等,則連續登錄  blog


彙總結果排序


附上代碼ci


with, tmp_da_user as (

select

to_date(ds,'yyyymmdd') as ds

,uid

,count(distinct ds) as 完整天數

from tmp_t_user_takse_detail

where status_name = '完成'

and uid in ('203111313364823804','1833903495100023')

group by

ds

,uid

)


, tmp_da_user_diff as (

select

ds

,uid

,完整天數

,dateadd(ds, -ROW_NUMBER() OVER(PARTITION BY uid ORDER BY ds asc ),'dd') AS diff_rn

-- 注意這裏是減法;日期減去分區排序的序號,若是新日期相等,則連續登錄

from tmp_da_user

)


select

uid

,min(ds) as start_ds -- 連續登錄的開始時間

,max(ds) as end_ds -- 連續登錄的結束時間

,count(1) as continuous_day -- 連續登錄的天數

,datediff(diff_rn, lag(diff_rn, 1) over(partition by uid order by diff_rn),'dd') interval_day-- 間隔多少天沒交易

from tmp_da_user_diff

group by

uid

,diff_rn



補充問題:

如何取用戶連續登錄超過3天的明細數據?



本文分享自微信公衆號 - SQL數據分析(dianwu_dw)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索