我有一个来自五金店的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篇文章
有什么主意吗?
谢谢
答案 0 :(得分:0)
我们将按文章和日期创建排名。然后过滤排名前2的排名。
select * from
(
select *, row_number() over (partition by articleNames order by date desc) as ranking from table
) t1
where ranking <= 2