Нужен вывод в формате ниже в оракуле. Я попытался с функцией отставания, это работало, если у нас есть только 2 строки в таблице - PullRequest
0 голосов
/ 13 октября 2019

Рассмотрим таблицу под таблицей.

Id  balance
 1    100
 2    500
 3    4000

Мне нужен вывод в следующем формате.

Id  balance begin_bal end_bal
1    100      0        100
2    500     100       600
3   4000     600      4600

1 Ответ

1 голос
/ 13 октября 2019

Немного аналитики, как вы и предполагали:

SQL> with test (id, balance) as
  2    (select 1,  100 from dual union all
  3     select 2,  500 from dual union all
  4     select 3, 4000 from dual
  5    ),
  6  temp as
  7    (select id, balance, sum(balance) over (order by id) rsum
  8     from test
  9    )
 10  select id,
 11    balance,
 12    nvl(lag(rsum) over (order by id), 0) begin_bal,
 13    rsum end_bal
 14  from temp
 15  order by id;

        ID    BALANCE  BEGIN_BAL    END_BAL
---------- ---------- ---------- ----------
         1        100          0        100
         2        500        100        600
         3       4000        600       4600

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...