特定值后无行

时间:2018-09-24 21:29:19

标签: sql function subquery rowcount in-subquery

Date time   Record ID   Action
9/9/2018 7:03   102 Support 
9/9/2018 7:03   102 hello
9/10/2018 7:03  103 Fetch it
9/10/2018 7:03  103 Ask it
9/10/2018 7:03  103 enable it 
9/9/2018 5:03   104 support 
9/9/2018 4:03   104 Fetch it
9/11/2018 7:03  105 Support 
9/11/2018 8:03  105 Support 
9/12/2018 5:03  106 end it
9/12/2018 6:03  106 Fetch it
9/12/2018 7:03  106 Support 

我想要实现的是

记录ID的计数,其中操作列中的最后一条记录(日期时间以升序排列)应该仅支持一次,并且在支持每个ID之后应该没有记录

在上表中,仅记录ID 106和104在操作列中仅具有一次支持,并且在支持按日期时间升序排列后没有记录,因此我需要计数(2)/显示104和106 ..

有人可以帮忙吗!! ..

1 个答案:

答案 0 :(得分:2)

嗯。一种方法使用聚合和having

select recordid
from t
group by recordid
having min(case when action = 'Support' then datetime end) = max(datetime);

从本质上讲,这是第一次看到“支持”是recordid的最新时间。