有没有一种有效的方法来查询稀疏数据上的array_agg,如下所示?具有稀疏元素的行需要聚合,即使有些仅部分重叠。
输入
ID | tags
----|-------------
a1 | {b1, b2}
a2 | {b1, b3, b4}
a3 | {b4, b5}
a4 | {b6, b7}
a5 | {b6, b8}
如您所见,a1、a2 和 a3 的标签并不完全重叠,但它们应该聚合起来以实现部分重叠。由于数据稀疏,聚合的大小不会很大。
预期产出
IDs | tags
-------------|-------------
{a1, a2, a3} | {b1, b2, b3, b4, b5}
{a4, a5} | {b6, b7, b8}
如果查询能在一夜之间完成大约 20 万行数据,那就太好了。
谢谢你的帮助。
俊