我现在正在做一个有趣的项目。除了许多其他的表外,我还有两张特别的表。
其中一个包含将要发生或已经发生的事件。另一个包含任何你能想象到的商品的销售,让我们在网上售票店买票。
我想回顾过去,如果营业额受到某种事件的影响。因此,我想提前两天看事件发生之前。并在活动开始后5天观察其结果。
我期望的结果是这样的:
这是我能想到的最大的简化,希望已经足够了。
我试过这样的东西:
Where event.Date = values.Date
or event.Date = values.Date - 2
or event.Date = values.Date - 1
or event.Date = values.Date + 1
... 等等,但它不起作用,让我们想象一下,我不想回到过去2天,在“未来”5天,但90天和60天。这需要很长时间才能建立起来,所以我认为应该有一个更聪明的方法。请帮忙!
谢谢您!
最佳答案
select e.date as date_event, e.event, v.date as date_sold, v.sold * v.price
from event as e inner join values as v
on v.date between e.date - interval '2 days'
and e.date + interval '5 days'
我可能把PostgreSQL语法在日期数学上弄错了,但你明白了。
关于sql - SQL-如何获取过去2天和特定日期后5天的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48529116/