连续三周活跃用户:在当前日期之前三周的周活表中,此用户都存在
周活表特点按照mid_id进行了去重
因此如果用户,在连续三周的周活中出现,那么就会有3条对应的记录
周活表:dws_dv_detail_wk
monday_date每周1的记录
date_sub(nex_day(‘2020-02-18’,‘om’),21)21天之前周所在周的周一
date_sub(next_day(‘2020-02-18’,‘mo’),1)当前所在周的周末
思路:
求当前日期,之前三周的数据。根据mid分组,分组后统计组内记录数量=3即是连续三周登录的用户(当前周往前推两周加上当前周=三周)
2020-02-18统计日期
select
‘2020-02-18’,
caoncat(date_sub(nex_day(‘2020-02-18’,‘om’),21),"-",date_sub(next_day(‘2020-02-18’,‘mo’),1))
count()
from
(select
mid_id
from dws_dv_detail_wk
where monday_date between date_sub(next_day(‘2020-02-18’,‘om’),21)
and ‘2020-02-18’
group by mid_id
having count()=3) t1