SQL Server:我需要文章的最后2个更改

时间:2019-02-08 05:43:46

标签: sql-server

我有一个来自五金店的Articles表,其中包含本文中价格变化的历史记录

例如:

ARTICLE              | UPC | DATE    | PRICE
---------------------+-----+---------+---------
SCREWDRIVER DEWALT   | 001 |20190201 |  100
SCREWDRIVER DEWALT   | 001 |20181001 |   95
SCREWDRIVER DEWALT   | 001 |20170825 |   90
SCREWDRIVER DEWALT   | 001 |20160514 |   84
HAMMER DRILL B&D     | 002 |20190105 |  150
HAMMER DRILL B&D     | 002 |20180405 |  145   
HAMMER DRILL B&D     | 002 |20170505 |  130
HAMMER DRILL B&D     | 002 |20160605 |  120 

我只想知道SELECT中带有DATE的商品的最后2个价格变化(示例:螺丝为100和95,日期为20190201,20181001,锤钻的日期为150和150),这个想法是针对1000篇文章

有什么主意吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我们将按文章和日期创建排名。然后过滤排名前2的排名。

select * from 
(
    select *, row_number() over (partition by articleNames order by date desc) as ranking from table 
) t1
where ranking <= 2