select a.ID,a.mjID,a.ms,a.sczq, Datediff(dd,a.sczq,getdate()) as ts
from (select * ,row_number() over (partition BY mjID
order by sczq desc)rn
from mj_mstgb)a
where rn=1
查最新日期,用max就好了。
--最新日期的所有数据
select * from mj_mstgb where sczq=(select max(sczq) from mj_mstgb)
--每个类别最新日期的记录
select * from mj_mstgb a inner join (select categrory,max(sczq) as sczq from mj_mstgb group by categrory) b
on a.categrory=b.categrory and a.sczq=b.sczq
两者的区别:
比如,iPhone 12是10月14号发布的,华为mate 40是10月22日发布。假设数据截止时间2006-01-01到2020-10-22
第一段:只显示华为的数据(因为iPhone 12发布的时间不是最新时间)
第二段:两条记录都会显示(但IPhone 11,mate30,p40等不会显示,因为不是最新的记录)