add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
with table1(tran_id, user_id, start_date, end_date) as (
select 1, 100, date '2018-04-01', date '2018-04-02' from dual union all
select 2, 100, date '2018-06-14', date '2018-06-14' from dual union all
select 4, 100, date '2018-06-12', date '2018-06-12' from dual union all
select 7, 101, date '2018-01-05', date '2018-01-05' from dual union all
select 9, 101, date '2018-01-08', date '2018-01-08' from dual union all
select 3, 101, date '2018-01-03', date '2018-01-03' from dual )
select tran_id, user_id, start_date, end_date, nvl(nsd - start_date, 0) diff
from (
select t.*, lead(start_date) over (partition by user_id
order by start_date) nsd
from table1 t)
TRAN_ID USER_ID START_DATE END_DATE DIFF
1 100 01-APR-18 02-APR-18 72
4 100 12-JUN-18 12-JUN-18 2
2 100 14-JUN-18 14-JUN-18 0
3 101 03-JAN-18 03-JAN-18 2
7 101 05-JAN-18 05-JAN-18 3
9 101 08-JAN-18 08-JAN-18 0