在多个列上查询不同,并在Postgres中聚合其他列

时间:2016-04-07 00:57:16

标签: sql postgresql aggregation postgresql-9.2

我有一张这样的表:

X,Y,Z,A,B,C
X,Y,Z,D,E,F
X,Y,Z,G,H,I
X,Y,W,A,C,D
X,Y,W,H,I,J

显然它是非规范化表。我想要一个返回以下结果的查询:

X,Y,Z,{{A,D,G},{B,E,H},{C,F,I}}
X,Y,W,{{A,H},{C,I},{D,J}}

标准化是非常昂贵的。任何想法?

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT c1,c2,c3,ARRAY[array_agg(c4),array_agg(c5)]
from your_table
group by c1,c2,c3