id name desc stsdt
1 name1 desc1 20080202 22:00:00
1 name1 desc2 20080203 23:00:00
1 name1 desc3 20080303 22:00:00
2 name2 desc1 20080202 22:00:00
2 name2 desc2 20080204 22:00:00
2 name3 desc3 20080205 22:00:00有如上数据,想要的结果是这样的
1 name1 desc3 20080303 22:00:00
2 name3 desc3 20080205 22:00:00
就是取同id中最新日期的那条注:同id的数据有N>=1条,存在不同id
主要是id和stsdt决定全部。
1 name1 desc1 20080202 22:00:00
1 name1 desc2 20080203 23:00:00
1 name1 desc3 20080303 22:00:00
2 name2 desc1 20080202 22:00:00
2 name2 desc2 20080204 22:00:00
2 name3 desc3 20080205 22:00:00有如上数据,想要的结果是这样的
1 name1 desc3 20080303 22:00:00
2 name3 desc3 20080205 22:00:00
就是取同id中最新日期的那条注:同id的数据有N>=1条,存在不同id
主要是id和stsdt决定全部。
where not exists(select 1 from table b where b.id = a.id and b.stsdt > a.stsdt)
from (select A.*,
row_number() over(partition by id order by stsdt desc) AS SHOW
from 表 as A
) b
where b.SHOW = 1上面SQL可以。
select t.* from tb t where stsdt = (select max(stsdt) from tb where id = t.id) order by t.id