Niestety, PostgreSQL tak naprawdę nie obsługuje standardu SQL MULTISET
operatora, ani ogólnie zestawów zagnieżdżonych. Możesz utworzyć ARRAY
z ROW
typy takie jak to:
select array[row(1, 2), row(3, 4)]
Możesz nawet rozpakować powyższą tablicę
select * from unnest(array[row(1, 2), row(3, 4)]) t(a int, b int)
Tak więc, jeśli ARRAY
z ROW
jest dla Ciebie do zaakceptowania, możesz napisać coś takiego:
select array_agg(row(a, b))
from (
select ...
) t(a, b)
Jeśli masz własny OBJECT
wpisz w PostgreSQL, możesz rzucić anonimowy ROW
do Twojego typu:
select array_agg(row(a, b)::your_type)
from (
select ...
) t(a, b)