加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2021-01-29 18:04:15 所属栏目:百科 来源:网络整理
导读:我有下表: ID A B C1 1 23 222 2 19 203 5 18 154 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 c

我有下表:

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排序)

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!