【发布时间】:2025-12-24 14:10:12
【问题描述】:
我正在 Athena SQL 中查询以下用例:
我有一个按日期分区的表 A: 日期 |购买次数 |类别
在另一个表 B 中,我有 500 个事件发生在特定日期。我想在每个事件发生前一周从 A 访问聚合数据: 事件ID |事件_日期 | 7_Days_Before_Event_Date |类别
对于每个事件,我想最终得到事件发生日期前 7 天的购买总和。
但是,当为此使用 where 子句时,例如。 A.Date between B.7_Days_Before_Event_Date and B.Event_Date
A 上的分区不再使用,所有数据都被查询,大大降低了性能。
如何在使用分区并因此保持高性能的同时获取每个事件前一周的数据?
SQL 查询:
select b.event_id, sum(a.number_of_purchases)
from dbo.tableA a
inner join dbo.tableB b on a.category = b.category
where a.date between b.7_days_before_event_date and b.event_date
group by b.event_id
【问题讨论】:
-
你能用 SQL 查询更新你的问题吗?
-
嗨@PrabhakarReddy,绝对是,刚刚更新
标签: sql performance amazon-athena partition