Ваш подзапрос:
select
array_agg(table_2.colomn_a)
from
table_2
возвращает массив массива varchar, not массив varchar. Итак, вы пытаетесь сравнить varchar (table_1.colomn_a
) с массивом varchar (array_agg(table_2.colomn_a)
), что невозможно. Подумайте, есть ли в вашем подзапросе явное выражение group by, например
select
array_agg(table_2.colomn_a)
from
table_2
group by table_2.colomn_b
. В этом случае очевидно, что запрос возвращает массив массивов varchar (по одному для каждого значения table_2.colomn_b
). В вашем первом запросе есть неявное предложение group by
, которое приводит к выводу в виде массива массива varchar. Вы можете просто использовать:
select
table_2.colomn_a
from
table_2
, и оно будет работать нормально (в этом случае = any
эквивалентно in
).