SQLite - 计算数字列值的增加百分比

SQLite - calculate percentage increase in values of a numeric column

我想知道一列中的值相对于前一个值的增减百分比。

有人可以告诉我应该怎么做吗?

谢谢

这就是我的 table 的样子

week |  sales  |

22   |  11     |
21   |  63     |
20   |  78     |
19   |  170    |
18   |  130    |

这就是我想要的

week |  sales  | growth

22   |  11     | -82.5
21   |  63     | -19.2
20   |  78     | -54.12
19   |  170    | 30.8
18   |  130    | NULL

如果您想按百分比计算两个数字之间的差异。你可以试试这个公式。 例如

(@newSales - @oldSales) / ((@newSales + @oldSales) / 2) * 100

你的情况:

SELECT (@sales - @week) / ((@sales + @week) / 2) * 100 AS growth

使用LAG()window函数获取每周sales的前值:

SELECT *,
       ROUND(100.0 * (1.0 * sales / LAG(sales) OVER (ORDER BY week) - 1), 1) growth
FROM tablename
ORDER BY week DESC;

参见demo