Если это можно декомпозировать до 3-ей нормальной формы базы данных, то лучше сделать это, иначе придется использовать костыль из 4 функций, чтобы выйти на значения в этих массивах и хоть как-то работать потом с ними в запросах.
select a.* from
(
select b.id, b.split_value, count(b.id) over (partition by b.split_value) as v_count
from
(
select c.id, cast(unnest(string_to_array(translate(c.value,'{}',''),',')) as INTEGER) as split_value
from
( -- имитация данных таблицы
(select 0 as id, '{1,2,3}' as value) union all
(select 1, '{4, 5}') union all
(select 2, '{3, 6}')
) c
) b
) a
where a.v_count > 1
Решение Б (исходные данные - тип массив).
select a.* from
(
select b.id, b.split_value, count(b.id) over (partition by b.split_value) as v_count
from
(
select c.id, unnest(c.value) as split_value
from
( -- имитация данных таблицы
(select 0 as id, array[1,2,3] as value) union all
(select 1, array[4,5]) union all
(select 2, array[3,6])
) c
) b
) a
where a.v_count > 1