开发者社区> 问答> 正文

在MySQL中创建累积总和列

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

id count 1 100 2 50 3 10 我想添加一个新的列,称为cumulative_sum,因此表如下所示:

id count cumulative_sum 1 100 100 2 50 150 3 10 160 是否有可以轻松完成此操作的MySQL更新语句?做到这一点的最佳方法是什么?

展开
收起
保持可爱mmm 2020-05-10 17:23:45 486 0
1 条回答
写回答
取消 提交回答
  • 如果性能是一个问题,则可以使用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; 这以运行方式计算运行总和:)如果性能是一个问题,则可以使用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; 这以运行方式计算运行总和:)如果性能是一个问题,则可以使用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; 这以运行方式计算运行总和:)如果性能是一个问题,则可以使用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; 这以运行方式计算运行总和:)如果性能是一个问题,则可以使用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; 这以运行方式计算运行总和:)来源:stack overflow

    2020-05-10 17:24:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像