В этом запросе с каждой строкой таблицы a
могут быть связаны сотни строк таблицы b
. Таким образом, array_agg
содержит все эти значения. Я хотел бы иметь возможность установить предел для него, но привить array_agg
Я могу сделать order by
, но нет никакого способа установить предел.
select a.column1, array_agg(b.column2)
from a left join b using (id)
where a.column3 = 'value'
group by a.column1
Я мог бы использовать «ломтик» синтаксис в массиве, но это довольно дорого, так как сначала нужно получить все строки, а затем отбросить остальные. Какой правильный эффективный способ сделать это?