找到越来越多的价值观

时间:2017-05-05 06:32:41

标签: sql-server

我需要找到越来越多的价值。我有这样的专栏

enter image description here

我必须按名称值进行分组,并考虑每5个值来计算增加百分比。 例如,我将考虑前5个值,增加平均值将计算为第5个值,然后是第6个,依此类推。下面是相同的例子。 enter image description here

我可以使用formal = =((((I5+I6+I7+I8+I9)/5)-I9)/I9)*100)在EXCEL中实现,但是在SQL中我试图创建一个游标但是无法实现增加值。

因此感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我认为你应该尝试这样的事情(但请下次以正确的方式发布您的样本数据和所需的输出。请参阅浏览StackOverflow):

SELECT ID, NAME, VALUE
,(AVG(0.0+VALUE) OVER (  ORDER BY ID ROWS 4 PRECEDING) - VALUE) / VALUE *100 AS INCR_AVG
FROM TAB1

输出:

ID          NAME       VALUE       INCR_AVG
----------- ---------- ----------- ---------------------------------------
1           ABC        486         0.000000
2           ABC        360         17.500000
3           ABC        174         95.402200
4           ABC        283         15.106000
5           ABC        386         -12.487000
6           ABC        154         76.233700
7           ABC        589         -46.146000
8           ABC        458         -18.340600
9           ABC        658         -31.762900
10          ABC        456         1.535000