За съжаление, PostgreSQL всъщност не поддържа SQL стандарта MULTISET
оператор, нито вложени набори като цяло. Можете да създадете ARRAY
от ROW
типове като този:
select array[row(1, 2), row(3, 4)]
И можете дори да разглобите горния масив
select * from unnest(array[row(1, 2), row(3, 4)]) t(a int, b int)
Така че, ако ARRAY
от ROW
е приемливо за вас, можете да напишете нещо подобно:
select array_agg(row(a, b))
from (
select ...
) t(a, b)
Ако имате свой собствен OBJECT
въведете в PostgreSQL, можете да прехвърлите анонимния ROW
към вашия тип:
select array_agg(row(a, b)::your_type)
from (
select ...
) t(a, b)