我有两张桌子。一个表具有不同的id。我会称之为distinct
id date
---------------
a 2017-01-01
b 2016-01-01
c 2017-01-01
另一个表是所有出现的id的日志。我会称之为log
id date
-----------------
a 2017-01-01
a 2016-01-01
b 2017-01-01
c 2017-01-01
b 2016-01-01
b 2015-01-01
我想要的表格是distinct
中列出的日期之后及之后所有ID的计数。在这个玩具示例中,结果如下:
id count
-----------
a 1 -- on or after 2017-01-01
b 2 -- on or after 2016-01-01
c 1 -- on or after 2017-01-01
答案 0 :(得分:1)
我认为这是join
和group by
:
select d.id, count(l.id)
from distinct d left join
log l
on l.id = d.id and l.date >= d.date
group by d.id;
答案 1 :(得分:0)
使用以下代码: -
select d.id, count(*) as cnt
from distinct d
join log l
on d.id = l.id
where l.date >= d .date
group by d.id