用时滞将一列除以另一列

时间:2017-06-07 14:36:53

标签: mysql sql

我有一张存储股票价格的表格,即股票ID,日期,开盘价,收盘价。我想在某个日期范围内选择一张桌子,并且还附近昨天接近今天的价格回报。

基本上我需要添加一个列,其中第i行的值等于Open(i)/ Close(i-1),我该怎么办?

我知道如果容易计算Open(i)/ Close(i),但是如何用不同行中的值除以?新列的长度将比其他列的长度小1个单位,是否可以放置一个' NA'为了匹配长度?

1 个答案:

答案 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,此时无法计算回报。