#吐槽VIP真烂到家了,你要这么跟我说题意,我肯定会哪怕你按照每周平均活跃天数(7*用户登录活跃次数/(当前天日期-第一次用户登录日期))我也会啊,什么玩意啊。
#第一次登录到当前天的时间间隔:当前天日期-第一次用户登录日期
# 平均活跃天数(用户登录次数/(当前天日期-第一次用户登录日期))
# 每周平均活跃天数(7*用户登录活跃次数/(当前天日期-第一次用户登录日期))
# 注意这里取该周最大日期作为当前天:2022-08-22 注意用户可能一天登录多次 但是一天活跃次数只能算一次,进行去重操作
# 第一次用户登录日期取用户最小登录日期
with tiaojian as (
select 
uid,
datediff((select max(login_date) from user_login_tb),min(login_date)) as diff
from user_login_tb
group by uid
)

select 
t.uid,
round(
7*count(distinct ub.login_date)/diff,2) as active_period
from tiaojian t inner join user_login_tb ub 
on t.uid=ub.uid
group by t.uid
order by t.uid