Malheureusement, PostgreSQL ne supporte pas vraiment le standard SQL MULTISET
opérateur, ni les ensembles imbriqués en général. Vous pouvez créer un ARRAY
de ROW
des types comme celui-ci :
select array[row(1, 2), row(3, 4)]
Et vous pouvez même désimbriquer le tableau ci-dessus
select * from unnest(array[row(1, 2), row(3, 4)]) t(a int, b int)
Ainsi, si un ARRAY
de ROW
est acceptable pour vous, vous pourriez écrire quelque chose comme ceci :
select array_agg(row(a, b))
from (
select ...
) t(a, b)
Si vous avez votre propre OBJECT
tapez dans PostgreSQL, vous pouvez convertir le ROW
anonyme à votre type :
select array_agg(row(a, b)::your_type)
from (
select ...
) t(a, b)