PostgreSQL 中的数组压缩
在 PostgreSQL 中,可以使用多种方法实现将两个等长数组组合成对。
版本 9.5 和后来:
Postgres 9.5 版引入了带有 ROWS FROM 构造的 array_agg 函数,它允许直接串联数组:
SELECT ARRAY[a,b] AS ab FROM unnest('{a,b,c}'::text[], '{d,e,f}'::text[]) x(a,b);
9.4 及更早版本:
9.5之前,有两个方法:
简单压缩:
对于具有相同元素数量的数组,使用以下查询:
SELECT ARRAY[a,b] AS ab FROM ( SELECT unnest('{a,b,c}'::text[]) AS a , unnest('{d,e,f}'::text[]) AS b ) x;
压缩对于多维数组:
转换将数组压缩为多维数组,请考虑以下自定义聚合函数:
CREATE AGGREGATE array_agg_mult (anyarray) ( SFUNC = array_cat , STYPE = anyarray , INITCOND = '{}' );
将此聚合函数与取消嵌套操作一起使用:
SELECT array_agg_mult(ARRAY[ARRAY[a,b]]) AS ab FROM ( SELECT unnest('{a,b,c}'::text[]) AS a , unnest('{d,e,f}'::text[]) AS b ) x;
以上是如何在 PostgreSQL 中压缩两个数组?的详细内容。更多信息请关注PHP中文网其他相关文章!