[英]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.