Tyvärr stöder PostgreSQL inte riktigt SQL-standarden MULTISET
operatorn, inte heller kapslade uppsättningar i allmänhet. Du kan skapa en ARRAY
av ROW
typer som denna:
select array[row(1, 2), row(3, 4)]
Och du kan till och med avstyra ovanstående array
select * from unnest(array[row(1, 2), row(3, 4)]) t(a int, b int)
Så, om en ARRAY
av ROW
är acceptabelt för dig, kan du skriva något så här:
select array_agg(row(a, b))
from (
select ...
) t(a, b)
Om du har ditt eget OBJECT
skriv in PostgreSQL, du kan casta den anonyma ROW
till din typ:
select array_agg(row(a, b)::your_type)
from (
select ...
) t(a, b)