比如一个表里有3个字段:产品编号,价格,日期。
价格会因为日期的不同而不同。
要求出每个产品最后一次价格,该怎么写。
------解决方案--------------------
select * from tb a
where exists (select 1 from (select 产品编号,max(日期)日期
from tb
group by 产品编号) b where a. 产品编号=b. 产品编号 and a.日期=b.日期)
------解决方案--------------------
with t as
(
select 产品编号,价格,日期,row_number() over(partition by 产品编号,日期 order by 日期 desc) as [rank]
from tb
)
select 产品编号,价格,日期 from t where [rank] = 1