ホームページ > データベース > mysql チュートリアル > PostgreSQL で 2 つの配列を圧縮するにはどうすればよいですか?

PostgreSQL で 2 つの配列を圧縮するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-04 19:02:40
オリジナル
902 人が閲覧しました

How Can I Zip Two Arrays in PostgreSQL?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート