1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
with data as (
select '001' as A, '001' as B, '01-01-2018' as C, 1 as D, 30000 as E from dual
union
select '001', '001', '01-01-2018', 2, 30000 from dual
union
select '002', '001', '02-02-2018', 1, 12500 from dual
union
select '003', '001', '02-05-2018', 1, 32560 from dual
union
select '004', '001', '10-05-2018', 1, 32000 from dual
union
select '005', '001', '01-10-2018', 1, 25000 from dual
union
select '005', '001', '01-10-2018', 2, 25000 from dual
union
select '005', '001', '01-10-2018', 3, 25000 from dual
union
select '006', '001', '03-11-2018', 1, 12500 from dual
)
select a,b,c,d, case when pe = e then null else e end as e from (
select d.*, lag(E,1) over(partition by a,b,c order by d) as pe from data d
); |
Partager