[英]In an composite type array, how should I select first element of composite type for all entries in array?
我有一个复合类型:
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
之后可以对该id进行分组。
SELECT array_agg(a)
FROM f
,unnest(pv)
GROUP BY id;
否则,您可以按整个数组分组
SELECT array_agg(a)
FROM f
,unnest(pv)
GROUP BY pv;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.