首页 > 解决方案 > sql server 上一年的记录

问题描述

我们如何在当前行中获取上一年的值。

例子

id      year    amount
1001    2001    2400
1002    2003    3600
1003    2005    2300
1002    2004    1600

期望的输出

id      year    amount  prevyearAmount
1001    2001    2400    Null
1002    2003    3600    2400
1003    2005    2300    1600
1002    2004    1600    3600

标签: sqlsql-servertsqlsql-server-2016window-functions

解决方案


Window 函数lag()完全符合您的要求:

select t.*, lag(amount) over(order by year) prev_amount
from mytable t

推荐阅读