你正在搭建一个用户活跃度的画像,其中一个与活跃度相关的特征是“最长连续登录天数”, 请用SQL实现“2023年1月1日-2023年1月31日用户最长的连续登录天数”
区块链毕设网qklbishe.com为您提供问题的解答
你正在搭建一个用户活跃度的画像,其中一个与活跃度相关的特征是“最长连续登录天数”, 请用SQL实现“2023年1月1日-2023年1月31日用户最长的连续登录天数”
with t1 as ( select distinct user_id, fdate from tb_dau where fdate >= '2023-01-01' and fdate <= '2023-01-31' ), t2 as ( select user_id, fdate, rank() over ( partition by user_id order by fdate ) as rn from t1 ), t3 as ( select user_id, fdate, date_sub (fdate, interval rn day) flag_date from t2 ), t4 as ( select user_id, count(*) total from t3 group by user_id, flag_date ) select user_id, max(total) as max_consec_days from t4 group by user_id
21:30
select user_id, max(consec_days) max_consec_days from (select user_id, count(startday) consec_days from (select user_id, date_sub(fdate, interval (dense_rank() over (partition by user_id order by fdate)) day) startday from tb_dau where year(fdate) = 2023 and month(fdate) = 1 ) t1 group by user_id, startday ) t2 group by user_id
在最内层表中,利用日期减去该日期本身按正序排序后的ranking。
如果一段日期为连续的,他们减去排序后的日期所得的起始日期相同。
23:33
以上就是关于问题你正在搭建一个用户活跃度的画像,其中一个与活跃度相关的特征是“最长连续登录天数”, 请用SQL实现“2023年1月1日-2023年1月31日用户最长的连续登录天数”的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训