我有一个复合类型:
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} |
我已经厌倦了许多陈述组合,但它没有提供答案。
有人可以帮忙吗?
谢谢!
海岸
答案 0 :(得分:1)
您应该考虑在表格中添加id
列,以便在unnest
之后对该ID进行分组。
SELECT array_agg(a)
FROM f
,unnest(pv)
GROUP BY id;
否则,您可以按整个数组进行分组
SELECT array_agg(a)
FROM f
,unnest(pv)
GROUP BY pv;