Mysql将前一行的值减到当前行

Mysql将前一行的值减到当前行,mysql,sql,Mysql,Sql,我有这张桌子: 2017-10-29 10.812999999999999 2017-10-30 1.883 2017-10-31 15.746 2017-11-01 29.156 2017-11-02 42.552 我想把第二天做的和前一天不同 所需输出的示例: 2017-10-29 (1.88-10.81)=-8,93 2017-10-30 13,863 等等。您可以使用左连接: select t.*, (t.val - tnext.val) as diff from t le

我有这张桌子:

2017-10-29  10.812999999999999
2017-10-30  1.883
2017-10-31  15.746
2017-11-01  29.156
2017-11-02  42.552
我想把第二天做的和前一天不同

所需输出的示例:

2017-10-29 (1.88-10.81)=-8,93
2017-10-30 13,863

等等。

您可以使用
左连接

select t.*, (t.val - tnext.val) as diff
from t left join
     t tnext
     on t.date = tnext.date - interval 1 day;

你能提供一个示例表结构和你到目前为止尝试过的内容吗?哪个MySQL版本?你可以使用lead/lag函数“你可以使用lead/lag函数”->只在MySQL 8,0+@saravanatnYes中使用,对,但是寻求帮助的人应该提到正确使用的版本是什么???你不需要coalesce吗?@JuanCarlosOropeza,取决于带开始日期的行的所需结果。这正是我所要求的,太好了,谢谢。