您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

查询一段时间内的DAU / MAU

查询一段时间内的DAU / MAU

假设您每天都有值,则可以使用子查询和获得总计数range between

with dau as (
      select date, count(userid) as dau
      from dailysessions ds
      group by date
     )
select date, dau,
       sum(dau) over (order by date rows between -29 preceding and current row) as mau
from dau;

不幸的是,我认为您想要的是不同的用户,而不仅仅是用户数。这使问题变得更加困难,尤其是因为Postgres不支持count(distinct)作为窗口函数

我认为您必须为此进行某种形式的自我加入。这是一种方法

with dau as (
      select date, count(distinct userid) as dau
      from dailysessions ds
      group by date
     )
select date, dau,
       (select count(distinct user_id)
        from dailysessions ds
        where ds.date between date - 29 * interval '1 day' and date
       ) as mau
from dau;
其他 2022/1/1 18:42:01 有538人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶