小编Ora*_*Dog的帖子

结合 array_agg 和 unnest

给定一个数据集(GIN索引为values):

key | values
-------------
 1  | {4,2,1}
 1  | {2,5}
 2  | {4,1,3}
Run Code Online (Sandbox Code Playgroud)

我想聚合数组:

key | values
-------------
 1  | {4,2,1,5}
 2  | {4,1,3}
Run Code Online (Sandbox Code Playgroud)

我的第一个想法不起作用:

SELECT key, array_agg(DISTINCT unnest(values)) AS values FROM data GROUP BY key
Run Code Online (Sandbox Code Playgroud)

[0A000] 错误:聚合函数调用不能包含返回集合的函数调用
提示:您可以将返回集合的函数移动到 LATERAL FROM 项中。

不熟悉LATERAL FROM,对我来说如何实现所需的输出并不明显。

postgresql aggregate array postgresql-10

6
推荐指数
1
解决办法
4575
查看次数

如何预测 VACUUM FULL 会回收多少空间?

有没有办法提前确定VACUUM FULL特定表上的多少磁盘空间将返回给操作系统?因此,您可以决定这样做是否值得付出代价。

如果有一个简单的查询来为数据库/服务器中的每个表执行此操作(而不是单独执行每个表),则奖励。

postgresql vacuum postgresql-12

5
推荐指数
1
解决办法
220
查看次数