以下是原始问题: 有一个表stockprices,其中包含有关一家公司股票交易的信息。它有两列:时间戳和价格。它们代表交易发生的时间和销售的价格。表中记录的自然顺序是随机的,不按时间戳排序。
您要添加另一列(我们称之为delta),您打算在时间上存储当前交易价格与上一交易价格之间的差额。
编写一个SQL语句,它将计算价格差异并在所有行中填充列增量。
我写下如下的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)
答案 0 :(得分:2)
您使用方括号作为标识符分隔符。此语法仅适用于Microsoft SQL Server和Sybase。您应该使用在MySQL中运行的语法,默认情况下是反引号,如果启用ANSI_QUOTES模式则使用双引号。
的回答