Você quer
lag()
:select
articleid,
amount,
date,
lag(date) over(partition by articleid order by date) prevdate,
lag(amount) over(partition by articleid order by date) prevamount
from table1
order by articleid, date desc
lag()
:select
articleid,
amount,
date,
lag(date) over(partition by articleid order by date) prevdate,
lag(amount) over(partition by articleid order by date) prevamount
from table1
order by articleid, date desc
Executando alterações de topologia de replicação para PostgreSQL
Como restaurar um banco de dados SQL Server em um Mac usando o Azure Data Studio
Como exibir a consulta e os resultados em uma guia separada no SQL Server Management Studio (SSMS) - Tutorial SQL Server/TSQL Parte 15
Entendendo o problema de leitura suja com o SQL Server