обкатки:
create table data(id integer, n1 integer, n2 integer, n3 integer, n4 integer);
insert into data(id, n1, n2, n3, n4)
values (111, 2, 4, 7, 0), (444, 1, 1, 2, 1),
(555, 1, 1, 2, 0), (777, 5, 3, 8, 0);
при условии, что n4 не может быть нулевым или отрицательным:
select n1, n2, n3 from data group by n1, n2, n3 having max(n4)=0;
n1 | n2 | n3
----+----+----
2 | 4 | 7
5 | 3 | 8
(2 rows)
, если вы не можете предположить, что:
insert into data(id, n1, n2, n3, n4)
values (881, 1, 1, 1, -1), (882, 1, 1, 1, null), (883, 1, 1, 1, 0);
select n1, n2, n3
from data
group by n1, n2, n3
having sum(case when n4=0 then 0 else 1 end)=0;
n1 | n2 | n3
----+----+----
2 | 4 | 7
5 | 3 | 8
(2 rows)