【发布时间】:2019-12-11 01:11:56
【问题描述】:
我正在运行这样的代码:
SELECT ID, Date, Price,
STDEV(Price) OVER (ORDER BY ID, Date ROWS BETWEEN 30 PRECEDING AND CURRENT ROW) As OneMonths,
STDEV(Price) OVER (ORDER BY ID, Date ROWS BETWEEN 60 PRECEDING AND CURRENT ROW) As TwoMonths,
STDEV(Price) OVER (ORDER BY ID, Date ROWS BETWEEN 90 PRECEDING AND CURRENT ROW) As ThreeMonths
FROM Price_Table
这给了我这个结果。
在第 5 行中,对于三个方差,我总是有三个空值。这是有道理的。但是,每次 ID 更改时,我都必须获得前一个 ID 的价格,因为每次 ID 更改时,我都希望标准偏差会被重置。所以,橙色的第一行应该是空的,我认为,下一行应该是零,因为第二天价格没有变化。我尝试将 LAG 函数包装在 STDEV 函数周围,但出现错误。我反其道而行之,也报错。
【问题讨论】:
标签: sql sql-server