我有两个带有日期col和id col
的表表1:
Date1 ID
2017-01-10 1
2016-02-12 1
2017-12-12 2
...
表2:
Date2 ID
2016-04-10 1
2018-01-10 1
2017-01-01 2
我想合并这些表,以便得到第三列,告诉我表1中的日期在表2中的日期之前出现了多少日期,按ID分组。如果表1中的日期出现在表2中具有相同id的多个日期之前,我希望将其与最早的日期分组。
这是我想要的输出:
Date2 ID Count
2016-04-10 1 1
2018-01-10 1 1
2017-01-01 2 0
答案 0 :(得分:0)
以下查询返回t2日期之前的t1日期数,对于相同的ID。
select t2.date2, t2.id, count(t1.id)
from t2
left join t1
on t1.id = t2.id and t1.date < t2.date
group by t2.date2, t2.id