所以我有一张简单的桌子:

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;

10-06 14:01
查看更多