我有一张看起来像这样的表:
|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)
我已经搜索并绞尽脑汁几天了。通常,我只是使用服务器端代码来执行此操作,但现在我需要将其全部包含在查询中。
尝试这个:
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)
| 归档时间: |
|
| 查看次数: |
10974 次 |
| 最近记录: |