sql - 如何在一个sql中以每周和每月的粒度计算数据
问题描述
我在 S3 上有这种格式的数据我使用 athena 在加入 2 个键列后生成聚合结果
要求 -
在国家层面,我必须计算每日、每周和每月的事件数量所以对于日本来说,在 10 月的两个事件中,每周的一个事件应该显示为结果。
预期结果 -
当我加入国家和 event_date == transaction_date
解决方案
嗯。. . 如果我关注您的问题,您可以在子查询中使用窗口函数,然后进行过滤:
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
推荐阅读
- powershell - 检查所有本地分区号并在每个分区上开始加密
- linux - 传递给 awk 使用的 shell 脚本的变量
- c# - Entity Framework Core - 使用外键值插入数据
- woocommerce - 在(每个)类别页面中显示来自 WooCommerce 产品类别小部件的(相关)父类别和子类别
- xamarin.forms - Xamarin Forms 上的长按持续时间
- javascript - 如何按字符串的索引对象属性值切片?
- bash - bash -c "commands;" 中的变量赋值失败
- fortran - 需要帮助来理解这个功能
- php - 带有文件时间的排序功能
- java - 使用 remove(Object) 从 LinkedList 中删除整数