如何在PostgreSQl中查询二维稀疏矩阵的聚合?

时间:2015-12-01 08:46:24

标签: arrays postgresql sparse-matrix aggregates

是否有一种有效的方法来查询稀疏数据上的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万行数据中完成了一夜左右,那就太好了。

感谢您的帮助。

0 个答案:

没有答案