当前位置: 首页 > 面试题库 >

在MySQL中创建累积总和列

方树
2023-03-14
问题内容

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

id   count
1    100
2    50
3    10

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

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

是否有可以轻松完成此操作的MySQL更新语句?做到这一点的最佳方法是什么?


问题答案:

如果性能是一个问题,则可以使用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;

这以运行方式计算运行总和:)



 类似资料:
  • 问题内容: 我正在尝试做的事情的广泛视角是,在预订系统被预订之日,找出整个系统中尚未进行的预订。这意味着计算存在的所有记录的数量,这些记录的后缀等于(或等于),按分组。请参阅以下假设示例,以获得更好的解释: 我想要结果: 但是我对如何构造查询完全不满意。有小费吗?谢谢! 编辑:为明确起见,number_of_reservations应该是该日期的预订数量,以及该日期之后几天的预订数量。换句话说,n

  • 问题内容: 我正在尝试为dellstore2数据库累计计算用户数。在这里和其他论坛上寻找答案时,我使用了这个 这返回 每个月是 看一下前几项,似乎总的来说还不错。但是当我跑步时 对于整个事情,我明白了 这与第一个输出11,681中的最后一项不一致。我猜上面的计算无法确定整个月的唯一性。什么是最快的计算方式(最好不使用自联接)? 问题答案: 除了直接从订单中选择之外,还可以使用如下子查询: 我认为这

  • 问题内容: 我知道有一些与此相关的帖子,但是我的情况有些不同,因此我希望获得一些帮助。 我需要从数据库中提取一些数据,这些数据是每天交互的累积计数。目前这就是我所拥有的 这样的输出接近我想要的,但不完全是我所需要的。我遇到的问题是日期与发生互动的时分秒存储在一起,因此group by不能将天分组在一起。 这就是输出的样子。http://screencast.com/t/N1KFNFyil 12月2

  • 问题内容: 什么是在MySQL中获取累计金额的“正确”查询? 我有一张表格,其中保存有关文件的信息,一个列列表包含文件的大小(以字节为单位)。(实际文件保存在磁盘上的某个位置) 我想要这样的累积文件大小: 现在,我使用以下查询来获得以上结果 但是,我的解决方案非常慢。(大约19秒,没有缓存)。 解释给出以下执行细节 我的问题是: 如何优化上述查询? 更新 我已经更新了问题,以提供表结构和使用20,

  • 问题内容: 我有这个数据框 我需要做的是从C列开始累积值的总和,直到下一个值为零,然后重置累积总和,直到完成所有行。 预期产量: 我已经使用了该函数并达到了期望的输出,但是问题是您无法定义固定的窗口范围,因为DataFrame可以连续五次显示数字,有时只能是两次,依此类推。 我的问题与以下Pyspark非常相似:重置条件下的累积总和,但没有人回答。 要重现数据帧: 问题答案: 创建一个临时列(),

  • 我有一个用例,只有当累积“和”等于或超过给定值n时,流才应该发出。让我们以n=5的六个整数为例。 正如您所看到的,除非和等于或超过5,否则什么都不会发出,除了最后一个元素,它无论如何都会发出。