【发布时间】:2019-10-02 19:12:07
【问题描述】:
如何使用 SQL 计算列的累积和,以便累积和始终保持在上限/下限内。下限 -2 和上限 10 的示例,显示常规累积和和有界累积和。
id input
-------------
1 5
2 7
3 -10
4 -10
5 5
6 10
结果:
id cum_sum bounded_cum_sum
---------------------------------
1 5 5
2 12 10
3 2 0
4 -8 -2
5 -3 3
6 7 10
有关有限累积和的一些(非 SQL)示例,请参阅 https://codegolf.stackexchange.com/questions/61684/calculate-the-bounded-cumulative-sum-of-a-vector。
【问题讨论】:
-
你的意思是上限/下限?请解释逻辑
-
见给出的例子。 cum_sum 列是正常的累积总和(如果需要,也可以是运行总计)。 bounded_cum_sum 是我所追求的。例如。在第二行中,累积和等于 12,但由于该值高于上限,因此 bounded_cum_sum 的值等于其上限,即 10。
-
这与stackoverflow.com/questions/2120544/how-to-get-cumulative-sum 不同,因为该问题考虑了“常规”累积总和。
-
@JuanCarlosOropeza:我添加了一个指向另一个 Stack Exchange 问题的链接,其中包含关于有界累积和和上限/下限(与 SQL 无关)的更多解释