gpt4 book ai didi

stored-procedures - 计算部分和的 MySQL 查询

转载 作者:行者123 更新时间:2023-11-29 01:48:02 25 4
gpt4 key购买 nike

我应该在 MySQL 数据库中执行什么查询以获得包含源表的部分总和的结果?

例如当我有 table 时:

Id|Val
1 | 1
2 | 2
3 | 3
4 | 4

我想得到这样的结果:

Id|Val
1 | 1
2 | 3 # 1+2
3 | 6 # 1+2+3
4 | 10 # 1+2+3+4

现在我通过一个包含游标和 while 循环的存储过程得到了这个结果。我想找到一个更好的方法来做到这一点。

最佳答案

您可以通过自己加入表格来做到这一点。 SUM 会将所有行相加到此行:

select cur.id, sum(prev.val)
from TheTable cur
left join TheTable prev
on cur.id >= prev.id
group by cur.id

MySQL 还允许使用用户变量来计算它,这更有效但被认为是一种 hack:

select 
id
, @running_total := @running_total + val AS RunningTotal
from TheTable

关于stored-procedures - 计算部分和的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1583464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com