这道题主要是理解什么是周平均活跃天数

核心逻辑 用户在其首次活跃后距离今天的天数 y 为分母
分子为用户活跃的天数 x,
这样 x/y 就算出平均每天访问天数了,x/y*7就是每周的。

题目修改建议:计算每个人距今 平均多长时间登录一次该应用

由于不清楚该用户最后活跃距今天数,这个指标也不算是一个好的指标。
不如看留存率等。

select
  uid,
  round(c/datediff(t1.dt,t.dt)*7,2) as active_period
from (
        select uid,min(login_date) dt,count(DISTINCT login_date) c
        from user_login_tb
        group by uid) t
    join (select max(login_date) dt from user_login_tb)t1
order by uid