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中文網其他相關文章!