使用当前行和上一行值进行Oracle sql数学计算

前端之家收集整理的这篇文章主要介绍了使用当前行和上一行值进行Oracle sql数学计算前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有下表:

ID  A   B   C
1   1   23  22
2   2   19  20
3   5   18  15
4   3   12  12

列A和B是常量.我想使用以下公式计算C列:

为第一排

C = B - A

之后

C = prevIoUs(C) - A

我想只使用oracle sql来实现这一点.

解决方法

如果你把数据放在

A    B       C
   a1   b1   b1 - a1     == b1 - a1
   a2   b2   c1 - a2     == b1 - a1 - a2 
   a3   b3   c2 - a3     == b1 - a1 - a2 - a3
   a4   b4   c3 - a4     == b1 - a1 - a2 - a3 - a4
   ...
   an   bn   cn-1 - an   == b1 - a1 - a2 - ... - an

您可以轻松找到分析函数解决方案,例如

select A,B,first_value(B) over(order by id) - sum(A) over (order by id) C
  from myTable

请检查实际订单(我按ID排序)

猜你在找的Oracle相关文章