Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在复合类型数组中,如何为数组中的所有条目选择复合类型的第一个元素?_Sql_Arrays_Postgresql - Fatal编程技术网

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;

请检查我的答案,如果答案对您有效,请接受。请阅读:理解为什么它很重要。已接受,抱歉,伙计,迟了接受。。。。