すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ST_Union

最終更新日:Jul 01, 2024

このトピックでは、ST_Union関数について説明します。 この関数は、複数の指定されたジオメトリオブジェクトの和集合を表すジオメトリオブジェクトを作成します。

構文

geometry ST_Union(geometry set g1Field);
geometry ST_Union(geometry g1 , geometry g2);
geometry ST_Union(geometry[] g1Array);
geometry ST_Union(geometry set g1Field, float8 gridsize);
geometry ST_Union(geometry set g1Field, cstring options);
geometry ST_Union(geometry set g1Field, float8 gridsize, cstring options);
geometry ST_Union(geometry[] g1Array, float8 gridsize);
geometry ST_Union(geometry[] g1Array, cstring options);
geometry ST_Union(geometry[] g1Array, float8 gridsize, cstring options);

パラメーター

パラメーター

説明

g1field

データセットで指定するジオメトリオブジェクトのフィールド。

g1

指定する最初のジオメトリオブジェクト。

g2

指定する2番目のジオメトリオブジェクト。

g1Array

ジオメトリオブジェクトで構成される配列。

gridsize

指定するグリッドのサイズ。 このパラメーターは、ユニオン操作を実行するときに同じグリッド内の頂点をマージするために使用されます。 デフォルト値は -1.0で、このパラメーターが無効であることを示します。

options

指定する並列コンピューティング機能のステータスと並列処理の程度。 このパラメーターは、並列コンピューティング機能を有効にし、並列度を決定するために使用されます。

この機能を有効にする場合、このパラメーターの値を '{"parallel": 4}' などのJSON文字列として指定する必要があります。 並列度の範囲は1から64です。 値の例は、並列コンピューティング機能が有効で、並列度が4であることを示します。 デフォルト値は '{}' で、シーケンシャルコンピューティング機能が使用されていることを示します。

説明

  • この関数の出力タイプは、MULTIまたはGeometryCollectionです。 ST_Union関数には2つのバージョンがあります。

    • バージョン1: ST_Union関数の入力は2つのジオメトリオブジェクトです。 ST_Union関数の出力は、MULTI、NON-MULTI、またはGeometryCollectionオブジェクトです。 2つのジオメトリオブジェクトのいずれかがNULLの場合、ST_Union関数はNULLを返します。

    • バージョン2: ST_Union関数は集約関数として機能します。 入力は、ジオメトリオブジェクトのコレクションです。 出力は、MULTIまたはNON-MULTIオブジェクトにすることができます。

  • ST_Collect関数とST_Union関数は交換可能である。 ST_Union関数は、指定したジオメトリオブジェクトの境界を解消して、構築されたMultiPolygonオブジェクトに交差する部分があるかどうかを確認します。 したがって、ほとんどの場合、ST_UnionはST_Collect関数よりも低速で実行されます。

  • 次の例は、ST_Union関数とST_Collect関数の違いを示しています。

    SELECT ST_Union(g1,g2),ST_Collect(g1,g2)
                 from (select 'POLYGON((0 0,1 0,1 2,0 2,0 0))'::geometry as g1,'POLYGON((1 0,3 0,3 1,1 1,1 0))'::geometry as g2) as t;

    12

  • 次の例は、gridsizeパラメータとoptionsパラメータの異なる設定での計算を示しています

    -- Specify the gridsize parameter.
    select st_area(st_union(geom, 0.005)) from tableA;
    
    -- Specify the options parameter.
    select st_area(st_union(geom, '{"parallel": 4}'::cstring)) from tableA;
    
    -- Specify the gridsize and options parameters at a time.
    select st_area(st_union(geom, 0.005, '{"parallel": 4}'::cstring)) from tableA;