繁体   English   中英

如何在一个 sql 中以每周和每月的粒度计算数据

[英]how to calculate data at daily weekly and monthly granularity in one sql

我在 S3 上有这种格式的数据我使用 athena 在加入 2 个键列后生成聚合结果

[1]:https://i.stack.imgur.com/OCUCe.png

要求 -

在国家一级,我必须计算每日、每周和每月级别的事件计数所以对于日本在 10 月份的两个事件,每周一个事件应该显示为结果。

预期结果 -

当我加入国家和 event_date == transaction_date

在此处输入图像描述 我如何在 SQL 中做同样的事情

嗯。 . . 如果我关注您的问题,您可以在子查询中使用 window 函数,然后进行过滤:

select t.*
from (select t.*,
             count(*) over (partition by eventdate) as day_count,
             count(*) over (partition by week) as week_count,
             count(*) over (partition by month) as month_count
      from t
     ) t
where eventdate = :transactiondate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM