不幸的是,PostgreSQL 并不真正支持 SQL 标准MULTISET
运算符,也不是一般的嵌套集合。你可以创建一个ARRAY
of 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
of 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)