SQL获取最新一笔数据的两个查询方法

//取每个站点的最新一笔预警信息方法一
select RCreateTime, stcd,SForecastTime,RQ,RQTime from 
(
select RCreateTime, stcd,SForecastTime,RQ,RQTime,
ROW_NUMBER() over(partition by stcd order by RCreateTime desc) as tm_index 
from Result where IsAlarm=1
) a 
where a.tm_index=1

//取每个站点的最新一笔预警信息方法二,百万级可预防卡死
select t1.RCreateTime, t1.stcd,t1.SForecastTime,t1.RQ,t1.RQTime from Result t1,
(select max(stcd) as stcd,max(RCreateTime) as tm from Result group by stcd ) t2 
where t1.stcd=t2.stcd and t1.RCreateTime=t2.tm;

你可能感兴趣的:(sql)