计算从前一行值增加/减少的百分比

use*_*071 4 mysql sql

我有一张看起来像这样的表:

|date_start  | date_end    |amount | 
+------------+-------------+-------+
|2015-02-23  | 2015-03-01  |50     |
|2015-03-02  | 2015-03-08  |50     |
|2015-03-09  | 2015-03-15  |100    |
|2015-03-16  | 2015-03-22  |800    |
|2015-03-23  | 2015-03-29  |50     |
Run Code Online (Sandbox Code Playgroud)

并且我想计算出amount从上一个日期开始的column 增加/减少的百分比。例如,结果将是这样的,

|date_start  | date_end    |amount | perc_change | 
+------------+-------------+-------+-------------+
|2015-02-23  | 2015-03-01  |50     | 
|2015-03-02  | 2015-03-08  |50     | 0
|2015-03-09  | 2015-03-15  |100    | 50
|2015-03-16  | 2015-03-22  |800    | 700
|2015-03-23  | 2015-03-29  |50     | -750
Run Code Online (Sandbox Code Playgroud)

我已经搜索并绞尽脑汁几天了。通常,我只是使用服务器端代码来执行此操作,但现在我需要将其全部包含在查询中。

Tim*_*880 5

尝试这个:

 SELECT t.*,
 amount - (SELECT amount FROM transactions prev WHERE prev.date_end     < t.date_start ORDER BY date_start DESC LIMIT 1) AS changes
 FROM   transactions t
Run Code Online (Sandbox Code Playgroud)