我试图将两个SQL列交错到成对数组中。 我该怎么做:
id key val
--- --- ---
1 a apple
1 b boy
2 x xray
2 y yellow
进入这个:
new_id array
--- ---
1 {a,apple},{b,boy}
2 {x,xray},{y,yellow}
答案 0 :(得分:0)
此解决方案非常特定于此案例(即每id
个2项),因此可能不够,但它确实适用于您的情况:
select
id
, ARRAY[min(kv), max(kv)]
from
(select
id
, ARRAY[key, val] kv from fruit
) s
group by
id
order by
id;
┌────┬───────────────────────┐
│ id │ array │
├────┼───────────────────────┤
│ 1 │ {{a,apple},{b,boy}} │
│ 2 │ {{x,xray},{y,yellow}} │
└────┴───────────────────────┘
(2 rows)