给定一个数据集(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,对我来说如何实现所需的输出并不明显。
有没有办法提前确定VACUUM FULL特定表上的多少磁盘空间将返回给操作系统?因此,您可以决定这样做是否值得付出代价。
如果有一个简单的查询来为数据库/服务器中的每个表执行此操作(而不是单独执行每个表),则奖励。