select t.card_id,t.upload_time from CHRDATAUPLOAD t where
t.upload_time = (select max(t1.upload_time) from CHRDATAUPLOAD t1 where t1.card_id = t.card_id )
select t.card_id,t.upload_time from CHRDATAUPLOAD t where t.upload_time = (select max(t1.upload_time) from CHRDATAUPLOAD t1 where t1.card_id = t.card_id ) 注:这里的card_id就是标题里说的id。 除了max(), 还有什么更加简便的,速度更加快的方法吗?
SELECT CARD_ID, UPLOAD_TIME
FROM (SELECT T.CARD_ID,
T.UPLOAD_TIME,
MAX(UPLOAD_TIME) OVER(PARTITION BY CARD_ID) AS UPLOAD_TIME_
FROM CHRDATAUPLOAD T) T
WHERE UPLOAD_TIME_ = UPLOAD_TIME;
select t.card_id,t.upload_time from CHRDATAUPLOAD t where
(t.card_id,t.upload_time) in (select t1.card_id,max(t1.upload_time) from CHRDATAUPLOAD t1 group by t1.card
select c.card_id, c.upload_time
from (select t.*,
--降序 max最先
row_number() over(partition by t.card_id order by t.upload_time desc) rn
from CHRDATAUPLOAD t) c
where rn = 1;