【问题标题】:postgresql array query (cannot accumulate arrays of different dimensionality)postgresql数组查询(不能累积不同维度的数组)
【发布时间】:2021-03-19 09:51:09
【问题描述】:
select * from temp10

k    v
ㅡㅡㅡㅡㅡㅡ
a   {a,b}
a   {c}
b   {d,e}
b   {f}

to

k    v
ㅡㅡㅡㅡㅡㅡ
a   {a,b,c}
b   {d,e,f}

我想要这些结果。

我的尝试↓

select k,json_agg(v) 
from temp10
group by k 
=
k    v
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
a   [["a","b"],  ["c"]]
b   [["d","e"],  ["f"]]


select k,array_agg(v) 
from temp10
group by k 
=
SQL Error [2202E]: ERROR: cannot accumulate arrays of different dimensionality

帮帮我

我的解释有什么不足吗? 我的解释有什么不足吗? 我的解释有什么不足吗?

【问题讨论】:

  • 而不是直接在数组上聚合,您应该在项目上聚合。所以你需要先展平(unnest)。

标签: json postgresql


【解决方案1】:

您可以将 v 展平并聚合为一个新数组 -

SELECT k, ARRAY_AGG(v) FROM 
(SELECT k,UNNEST(v) v FROM temp10) test
GROUP BY k

【讨论】:

    猜你喜欢
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    相关资源
    最近更新 更多