sql - 自定义运行和查询
问题描述
我需要一个查询来查找运行总和,但如果总和为正数则不需要进一步求和,并且它应该在出现负数时重新启动。
输入表
row_number Id value
2 1 -377
3 1 100
4 1 -4003
5 1 507
6 1 3774
7 1 499
8 1 511
9 1 -5000
10 1 300
11 1 100
输出表
Id value running_sum
1 -377 -377
1 100 -277
1 -4003 -4280
1 507 -3773
1 3774 1
1 499 500
1 511 1011
1 -5000 -5000
1 300 -4700
1 100 -4600
我已将查询写为
select *,sum(value) over (partition by id order by row_number rows betwwen unbounded preceding and current row) as running_sum
from table1;
所以这总和,当负数出现在第 9 行时,我无法重新计算总和。
解决方案
推荐阅读
- javascript - 有没有办法在函数中禁用全局变量声明
- pine-script - 如何在输入会话时间中添加一分钟
- r - 如何仅在相同的列名上合并两个 CSV 文件
- java - 如何制作播放音频的相同按钮,单击按钮时停止?
- amazon-web-services - 在承担角色的 ec2 实例上运行 ecr 命令需要哪些 iam 策略?
- flutter - 你好,不知道为什么我写完assets的路径后还是加载不出来[已回答,]
- python - 为什么在编辑 csv 文件时出现 ValueError?
- deep-learning - 如何使用 PyTorch 跨多个虚拟机训练深度学习模型?
- amazon-web-services - 应用程序负载均衡器的 S3 策略
- javascript - 如何在时刻js或日期查询昨天的数据?