表客户中有一组客户有一些活动,每个客户已经完成了一项特定活动,并且已将其标记为已发生的事件,并且该日期已被选为参考日期。
现在的任务是在参考日期找到客户的记录。例如。在事件发生前10天或事件发生后20天或之前5天和之后5天选择每个客户的活动。
表格如下:
Customer ID| activities | date
1 | a1 | date1
1 | a2 | date1
1 | a3 | date2
1 | a1 | date2
.
1 | a-sp | date22 ---> a-sp is an event occurred and the date is Ref. Date
.
1 | a1000 | date30
对许多其他客户来说非常明智
来自社区的任何建议?
答案 0 :(得分:2)
您可以这样做:
select t.*, e.event_date
from t join
(select t.customerid, t.date as event_date
from t
where t.activity = 'a-sp'
) e
on t.date >= add_days(e.event_date, -5) and
t.date <= add_days(e.evant_date, 5);