你好,感谢您提前帮助。我有以下表格:
create table temp_vol (symbol nchar(10), dseqkey int, volume float)
以下是表格中的一些数值:
symbol dseqkey volume (no commas in the actual values)
C 20672 422,764,512
F 20672 47,144,600
F 20671 51,695,000
C 20671 371,950,496
F 20670 48,680,600
C 20670 654,208,512
C 20669 626,121,600
F 20669 93,489,504
C 20668 712,674,304
我需要的输出是每个符号在每个dseqkey上的2天简单移动平均值((volume dseqkey + volume dseqkey-1) / 2)。我可以得到所有符号在一个dseqkey上的移动平均值,也可以得到一个符号在所有dseqkeys上的移动平均值,但似乎无法同时获得两者的结果。
cur.rn - 2
更改为cur.rn - 29
,则可以将其扩展到30天。 - Andomardseqkey
值保证没有间隙:a 2-day simple moving average ((volume dseqkey + volume dseqkey-1) / 2)
。在这种情况下,可以使用 Andomar 的解决方案而不需要 CTE +ROW_NUMBER()
。删除WITH
部分后,我认为应该将numbered
替换为temp_vol
,将rn
替换为dseqkey
。 - Andriy M