Например, если элемент 'hi', а N равен 3, мне нужен фрагмент PostgreSQL, который я могу использовать в запросе SELECT, который возвращает следующий массив:
'hi'
3
SELECT
['hi', 'hi', 'hi']
Вы можете использовать array_agg с generate_series
array_agg
generate_series
select array_agg(s) from ( values('hi')) as t(s) cross join generate_series(1,3)
Универсальный
select array_agg(s) from ( values(:elem)) as t(s) cross join generate_series(1,:n)
DEMO
sql demo
with cte as ( select 'hi' as rep_word, generate_series(1, 3) as value ) -- ^^^ n = 3 select array(SELECT rep_word::text from cte);