我有一张存储股票价格的表格,即股票ID,日期,开盘价,收盘价。我想在某个日期范围内选择一张桌子,并且还附近昨天接近今天的价格回报。
基本上我需要添加一个列,其中第i行的值等于Open(i)/ Close(i-1),我该怎么办?
我知道如果容易计算Open(i)/ Close(i),但是如何用不同行中的值除以?新列的长度将比其他列的长度小1个单位,是否可以放置一个' NA'为了匹配长度?
答案 0 :(得分:0)
在SQL Server中,lag函数可用于从其他行检索值,如下所示:
Select
[stock_id],
[date],
[open]/LAG([close],1) OVER (PARTITION BY [stock_id] ORDER BY [date] asc) as [return]
from tbl_1
ORDER BY [stock_id],[date]
这也将自动为系列中的第一个日期NULL,此时无法计算回报。