所以我有一张简单的桌子:
id amount
1. 40
2. 50
3. 60
我想创建一个查询,该查询将返回一个带有和的id号,方法是第一个id有和40,第二个id有40+50=90,第三个id有40+50+60=150。可视化输出如下:
id sum
1. 40
2. 90
3. 150
最佳答案
这里有一个mysql 8+选项:
SELECT
id,
SUM(amount) OVER (ORDER BY id) sum
FROM yourTable;
Demo
这可能是编写查询最有效的方法。如果您碰巧使用的是早期版本的mysql,请使用相关子查询:
SELECT
id,
(SELECT SUM(t2.amount) FROM yourTable t2 WHERE t2.id <= t1.id) AS sum
FROM yourTable t1;