Sql 在复合类型数组中,如何为数组中的所有条目选择复合类型的第一个元素?
我有一个复合类型:Sql 在复合类型数组中,如何为数组中的所有条目选择复合类型的第一个元素?,sql,arrays,postgresql,Sql,Arrays,Postgresql,我有一个复合类型: 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}
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} |
我已经厌倦了很多语句组合,但它没有提供答案
有人能帮忙吗
谢谢大家!
Sale
< P>你应该考虑添加一个<代码> ID>代码>列到你的表中,这样分组就可以在“代码> unNest< /Cord>ing”之后在ID上完成。SELECT array_agg(a)
FROM f
,unnest(pv)
GROUP BY id;
否则,您可以按整个阵列分组
SELECT array_agg(a)
FROM f
,unnest(pv)
GROUP BY pv;
请检查我的答案,如果答案对您有效,请接受。请阅读:理解为什么它很重要。已接受,抱歉,伙计,迟了接受。。。。