原来的问题是:有一个股票价格表,其中包含有关一家公司股票交易的信息。它有两列:时间戳和价格。它们代表交易发生的时间和交易的价格。表中记录的自然顺序是随机的,不按时间戳排序。
您添加另一列(我们称之为delta),您打算在其中存储当前交易价格与前一个交易价格之间的时间差。
编写一条SQL语句,计算价差并在所有行中填充delta列。
我写了下面的sql在mysql上运行,但似乎mysql不支持当前,我不能继续,以下是我写的一个到现在为止,以计算当前交易价格和前一个交易价格之间的时间差:
SELECT
[current].timestamp,
[current].price,
ISNULL([next].price, 0) - [current].price
FROM
stockprice AS [current]
LEFT JOIN
stockprice AS [next]
ON [next].timestamp = (SELECT MIN(timestamp) FROM stockprice WHERE timestamp > [current].timestamp)
使用方括号作为标识符分隔符。此语法仅适用于Microsoft SQL Server和Sybase。你应该使用MySQL的语法,默认情况下是反引号,如果你启用了ANSI_QUOTES模式,则是双引号。
是否不同的数据库使用不同的名称引用?