我有一个复合类型:
create type p as (a int, b int);
然后我创建了一个表:
create table f(pv p[]);
用它填充值:
insert into f values(array[(10,20),(30,40)]::p[]);
insert into f values(array[(1,20)]::p[]);
现在我想要的是一个“select”语句,它为数组中的每个条目显示元素“a”,预期可能是这样的:
|pv |
|{10,30}|
|{1} |
我已经厌倦了很多语句组合,但它没有提供答案。
任何人都可以帮忙吗?
谢谢!
支撑
您应该考虑id
在表中添加一列,以便可以在unnest
ing之后对该 id 进行分组。
SELECT array_agg(a)
FROM f
,unnest(pv)
GROUP BY id;
否则,您可以按整个数组分组
SELECT array_agg(a)
FROM f
,unnest(pv)
GROUP BY pv;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句