如何解决Athena或Quicksight上的滚动计数
我有这个数据集
date id
1/1/2020 1
1/1/2020 2
...
n m
我希望在AWS Quicksight或Athena上有不同每月用户的滚动计数。例如
date MAU
1/1/2020 -
1/2/2020 -
1/30/2020 100
1/31/2020 102
2020年1月30日的100表示在过去30天中有100个不同的用户处于活动状态(从2020年1月1日到2020年1月30日)。在1/31/2020上为102,表示在过去30天中有102个不同的用户处于活动状态(从1/2/2020到1/30/2020)
解决方法
基本思想是将窗口计数与范围框架一起使用。如果我们将日期转换为一个纪元并使用以下范围框架,它是否可以在Amazon Athena中使用?
select date,sum(count(*)) over(
order by to_unixtime(date)
range between - 60 * 60 * 24 * 30 preceding and current row
) mau
from mytable
group by date
窗口函数解决方案的另一种选择是相关子查询:
select date,count(*) + (
select count(*)
from mytable t1
where t1.date >= t.date - interval '30' day and t1.date < t.date
) mau
from mytable
group by date
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。