sql - 将前一行的值添加到当前行
问题描述
我有一个简单的表,我想将前一行的值添加到当前行中,并将当前行的值添加到下一行中,这样它就会一直持续到最后。
请看下表数据。
ID Value ValueIncrement
1 2 0
2 3 5 (2+3)
3 9 14 (2+3+9)
4 6 20 (2+3+9+6)
5 3 23 (2+3+9+6+3)
6 1 24 (2+3+9+6+3+1)
7 2 26 (2+3+9+6+3+1+2)
8 0 26 (2+3+9+6+3+1+2+0)
9 2 30 (2+3+9+6+3+1+2+0+2)
我正在寻找一个可以让我连续添加值的选择查询。
解决方案
你可以做一个窗口总和:
select id, value, sum(value) over (order by id) valueincrement
from mytable
order by id
编号 | 价值 | 增值 -: | ----: | -------------: 1 | 2 | 2 2 | 3 | 5 3 | 9 | 14 4 | 6 | 20 5 | 3 | 23 6 | 1 | 24 7 | 2 | 26 8 | 0 | 26 9 | 2 | 28
推荐阅读
- html - 修改 blogdown webst 的 font-title
- variables - 来自具有动态值的 HTML 属性的 LESS 变量
- html - Bootsrap 4使用Angular 8将输入文本作为只读响应
- dataweave - Dataweave 中的尾递归
- matlab - 如何修复“索引超过数组元素的数量 (1)”错误?
- xml - 需要根据其中一个 XML 标签更改编码格式
- java - 调用内部带有 for 循环的方法,而不是更新变量
- javascript - Discord Bot 生成错误:“消息未定义”
- c++ - 指向 C++ 中函数的指针,(*pf)() 和 pf 是否相同?
- bash - 了解为什么 git-filter-branch 没有清理我的历史记录