SQL将具有开始日期和结束日期的条目合并为具有单个日期的条目



我有两个表,让我们称它们为A和B。表A有关于特定事件的数据,并且有一个唯一的键列对event_dateperson。表B具有随时间的聚合数据,因此具有关键字列start_dateend_dateperson。表B中的日期范围对于给定的人来说永远不会重叠,因此end_date对于复合键来说并不是绝对必要的。

以下是的两个例子

SELECT event_date, person
FROM A
event_date
2021-10-01爱丽丝
2021-10-01Bob
2021-10-05Bob
2021-11-05Bob

您可以在BETWEEN日期之前尝试JOIN

SELECT a.*,b.attribute
FROM A a
JOIN B b
ON a.event_date BETWEEN b.start_date AND b.end_date
AND a.person = b.person

最新更新