ホームページ >データベース >mysql チュートリアル >PostgreSQL で 2 つの配列を圧縮するにはどうすればよいですか?
PostgreSQL での配列の圧縮
PostgreSQL では、さまざまな方法を使用して、同じ長さの 2 つの配列をペアに結合できます。
バージョン 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 より前は、 2 つのアプローチがあります:
単純な圧縮:
同じ数の要素を持つ配列の場合は、次のクエリを使用します:
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 で 2 つの配列を圧縮するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。