У меня есть таблица, которая содержит некоторые (положительные) числовые значения в 2 столбцах, один для положительных и один для отрицательных значений.
тестовая_таблица
POSITIVEVALUE | NEGATIVEVALUE
----------------------------------
100
| 50
70 |
| 80
100 | 30
Мне нужно получить последовательную сумму суммы строк в каждой строке. Я пробовал кое-что с помощью LAG(), что приводит к следующему результату.
Запрос:
SELECT PositiveValue,
NegativeValue,
RowTotal,
NVL( (LAG(RowTotal, 1, NULL) OVER (ORDER BY ROWNUM)), 0) AS LagValue,
( NVL( (LAG(RowTotal, 1, NULL) OVER (ORDER BY ROWNUM)), 0)
+ (NVL(RowTotal, 0))) AS SuccessiveSum
FROM(
SELECT PositiveValue,
NegativeValue,
NVL(PositiveValue, 0) - NVL(NegativeValue, 0) AS RowTotal
FROM test_table);
Результат:
POSITIVEVALUE NEGATIVEVALUE ROWTOTAL LAGVALUE SUCCESSIVESUM
100 100 0 100
50 -50 100 50
70 70 -50 20
80 -80 70 -10
100 30 70 -80 -10
Как получить результат в виде суммы суммы строк с предыдущей суммой строк, как показано ниже?
ROWTOTAL SUCCESSIVESUM
100 100
-50 50
70 120
-80 40
70 110