首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在MySQL中创建累计和列

在MySQL中创建累计和列
EN

Stack Overflow用户
提问于 2010-04-02 05:50:17
回答 6查看 120.9K关注 0票数 78

我有一个表,看起来像这样:

id   count
1    100
2    50
3    10

我想添加一个名为cumulative_sum的新列,因此该表将如下所示:

id   count  cumulative_sum
1    100    100
2    50     150
3    10     160

有没有一条MySQL update语句可以很容易地做到这一点?实现这一目标的最佳方法是什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-04-02 06:08:27

如果性能有问题,您可以使用MySQL变量:

set @csum := 0;
update YourTable
set cumulative_sum = (@csum := @csum + count)
order by id;

或者,您可以删除cumulative_sum列并在每个查询上计算它:

set @csum := 0;
select id, count, (@csum := @csum + count) as cumulative_sum
from YourTable
order by id;

这将以一种运行的方式计算运行和:)

票数 93
EN

Stack Overflow用户

发布于 2010-04-02 05:59:07

UPDATE t
SET cumulative_sum = (
 SELECT SUM(x.count)
 FROM t x
 WHERE x.id <= t.id
)
票数 3
EN

Stack Overflow用户

发布于 2014-07-10 18:06:29

select Id, Count, @total := @total + Count as cumulative_sum
from YourTable, (Select @total := 0) as total ;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2563918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档