我想将先前年份的价值乘以下一年的价值。
这是我表的数据
Drop table #Index
Create table #Index
(
ID int ,
YearOfMortgrage Smallint,
Percentage Numeric (10,5)
)
Insert into #Index values ( 1 , 2008 ,1.01000 )
Insert into #Index values ( 2 , 2009 ,1.00125 )
Insert into #Index values ( 3 , 2010 ,1.00200 )
Insert into #Index values ( 4 , 2011 ,1.00850 )
Insert into #Index values ( 5 , 2012 ,1.01400 )
Insert into #Index values ( 6 , 2013 ,1.00900 )
Insert into #Index values ( 7 , 2014 ,1.00450 )
Insert into #Index values ( 8, 2015 ,1.00900 )
Insert into #Index values ( 9 , 2016 ,1.00600 )
Insert into #Index values ( 1, 2017 ,1.00700 )
我希望将2008年的百分比乘以2009年的百分比,依此类推。 像这样1.01000 * 1.00125 * 1.00200 * 1.00850等。
我尝试过滞后和领导,似乎没有用。我可以使用无限制的函数,但它只能用于聚合。
感谢你的时间,感谢任何帮助
答案 0 :(得分:4)
你想要一个累积总和。假设值都大于0,您可以使用一些算术:
select i.*,
exp(sum(log(Percentage)) over (order by YearOfMortgrage)) as running_product
from #Index i;