grouping by
с условием having
, как в следующем случае, отображает желаемый результат
with tab( ID, Project, EmpNo, Period, Hours ) as
(
select 1,'P1','E1',201810, 10 from dual union all
select 2,'P1','E1',201811,-10 from dual union all
select 3,'P1','E1',201811,-10 from dual union all
select 4,'P1','E1',201811,-10 from dual
)
select *
from tab
where ID >
( select min(ID)
from tab
group by Project, EmpNo, Period, Hours
having count(*) > 1
);
ID PROJECT EMPNO PERIOD HOURS
-- ------- ------ ------ -----
3 P1 E1 201811 -10
4 P1 E1 201811 -10
Rextester Demo