我有一个看起来像这样的表:
|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 |
并且我想计算出amount上一日期的column的增加/减少百分比。例如,结果将是这样的,
amount
|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
我已经搜寻并绞尽脑汁了几天。通常,我只是使用服务器端代码来完成此操作,但是现在我需要将其全部包含在查询中。
试试这个:
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