列的值取决于所有先前的值

时间:2020-06-11 09:09:00

标签: sql oracle window-functions running-total

查询表时,我正在努力计算列(c3)。实际上,当前行的c3值取决于(c3)的所有先前值。

例如raw 3的c3值将取决于raw2的c3,而后者取决于raw1的c3,依此类推...

| c1 |   c2  |    c3    | 
|----|-------|----------|
| 1  |   1   |          |<-- row1 
| 2  |   6   |          |<-- row2
| 3  |   2   |          |<-- row3
| 4  |  10   |          |<-- row4
  • 对于第1行:c3的值= 1 +1等于2
  • 对于第2行:c3的值=(2)+ 2 + 6,得出10
  • 对于第3行:c3的值=(10)+ 3 + 2,得出15
  • 对于第4行:c3的值=(15)+ 4 + 10,得出29

如何编写查询。

1 个答案:

答案 0 :(得分:2)

那是一个窗口总和。假设列c1定义了行的顺序,那就是:

select
    c1,
    c2,
    sum(c1 + c2) over(order by c1) c3
from mytable