Hello you can try this :
select *
from my_table
where Value_C in (
select Value_C
from my_table
group by Value_C
having count(Value_C) > 1 and max(Group_B)<> min(Group_B)
)
and Value_D is not null
order by Value_C;
Output
you can check this here : https://sqlfiddle.com/oracle/online-compiler?id=328fc9b1-3952-4fb8-b989-1acdddd1fcae