我的表中有4列(ID,计数器,月份,年份)
我的任务是计算当前月份的计数器与特定ID的上个月的计数器之间的差异
例如:
ID Counter Month Year
1 57688 12 2017
1 89895 1 2018
2 35792 1 2018
3 12234 2 2018
现在,如果我想找到具有相同ID的两行之间的差异(就像前两行一样) 89895(Jan)-57688(dec)= 32207将是结果
请记住从2018年1月到2017年12月的变化情况
我该怎么做这个任务
答案 0 :(得分:1)
假设你有SQL Server,你的问题就不清楚了。
declare @sampleData table(id int, [counter] int, [month] int, [year] int)
insert into @sampleData values
(1, 57688, 12, 2017),
(1, 89895, 1, 2018),
(2, 35792, 1, 2018),
(2, 12234, 3, 2018);
select
id, [counter], [month], [year],
lag([counter],1,0) over (partition by id order by [year] asc, [month] asc) as previousCounter
from
@sampleData
您可以使用lag
或lead
函数获得之前或之后的结果。您可以在https://docs.microsoft.com/en-us/sql/t-sql/functions/lead-transact-sql