计算表1中出现的次数,其中日期在表2中的日期之间

时间:2018-03-20 15:59:21

标签: sql

我有两个带有日期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

1 个答案:

答案 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