在多个列上查询不同并在 Postgres 中聚合其他列
Query distinct on multiple columns and aggregate others in Postgres
我有一个 table 这样的:
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
显然它是非标准化的table。我想要一个 returns 以下结果的查询:
X,Y,Z,{{A,D,G},{B,E,H},{C,F,I}}
X,Y,W,{{A,H},{C,I},{D,J}}
归一化很有expensive.Any想法?
试试这个:
SELECT c1,c2,c3,ARRAY[array_agg(c4),array_agg(c5)]
from your_table
group by c1,c2,c3
我有一个 table 这样的:
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
显然它是非标准化的table。我想要一个 returns 以下结果的查询:
X,Y,Z,{{A,D,G},{B,E,H},{C,F,I}}
X,Y,W,{{A,H},{C,I},{D,J}}
归一化很有expensive.Any想法?
试试这个:
SELECT c1,c2,c3,ARRAY[array_agg(c4),array_agg(c5)]
from your_table
group by c1,c2,c3