Пара возможных способов ...
Во-первых, просто исключите любой результат, в котором совокупность составляет только '01' или '02':
select
id, string_agg (doc_id, ',')
from table
group by id
having
array_agg (doc_id) not in ('{01}', '{02}')
Или вы можете использоватьдругая логика, например, если число больше 1 (следовательно, оно не может только быть '01' или '02') ИЛИ единственный результат не является '01' или '02 ':
select
id, string_agg (doc_id, ',')
from table
group by id
having
count (*) > 1 or
min (doc_id) not in ('01', '02')
Мин. Работает, потому что в этот момент, когда счет> 1 не работает, вы знаете, что у вас есть только один элемент ... так что мин будет результатом этого одного элемента.