sql - 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
解决方案
Window 函数lag()
完全符合您的要求:
select t.*, lag(amount) over(order by year) prev_amount
from mytable t
推荐阅读
- r - geom_line 与 x 轴按出现顺序
- authentication - 添加新用户 ACLPOLICY 时出错:ERROR StackTrace --- [tp1969073751-39] 完整堆栈跟踪:错误
- sql-server - 无法连接到 SSRS 中的报表服务器进行配置
- php - 如何在 Laravel 中重定向后设置选择值
- parsing - 如何在 Prolog 中创建高阶 DCG 解析器?
- c# - RuntimeMiddleware 目标数组不够长 错误
- python - 错误:没有找到 tensorflow==1.7.1 的匹配分布(来自 unityagents)
- java - 如何检查设备上使用的语言?
- image - Pandoc:在导出到 docx 时将样式应用于所有图像?
- python - 为什么我的输入重复多次?