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

ApsaraDB RDS:ST_Union

最終更新日:Jan 12, 2024

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

構文

ジオメトリST_Union (ジオメトリセットg1Field);
ジオメトリST_Union (ジオメトリg1、ジオメトリg2);
ジオメトリST_Union(geometry[] g1Array);
ジオメトリST_Union (ジオメトリセットg1Field、float8 gridsize);
ジオメトリST_Union (ジオメトリセットg1Field、cgstringオプション);
ジオメトリST_Union (ジオメトリセットg1Field、float8 gridsize、cstringオプション);
ジオメトリST_Union(geometry[] g1Array、float8 gridsize);
ジオメトリST_Union(geometry[] g1Array、cstringオプション);
ジオメトリST_Union(geometry[] g1Array、float8 gridsize、cstringオプション); 

パラメーター

パラメーター説明
g1fieldデータセットで指定するジオメトリオブジェクトのフィールド。
g1指定する最初のジオメトリオブジェクト。
g2指定する2番目のジオメトリオブジェクト。
g1Arrayジオメトリオブジェクトで構成される配列。
gridsize指定するグリッドのサイズ。 このパラメーターは、ユニオン操作を実行するときに同じグリッド内の頂点をマージするために使用されます。 デフォルト値は -1.0で、このパラメーターが無効であることを示します。
オプション指定する並列コンピューティング機能のステータスと並列処理の程度。 このパラメーターは、並列コンピューティング機能を有効にし、並列度を決定するために使用されます。

この機能を有効にする場合、このパラメーターの値を '{"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関数の違いを示しています。
    
                 から (選択 'POLYGON((0 0,1 2,0 2,0 0))': geometry as g1,'POLYGON((1 0,3 0,3 1,1 0))'::geometry as g2) as t;
    12
  • 次の例は、gridsizeパラメータとoptionsパラメータの異なる設定での計算を示しています
    。
    tableAからst_area(st_union(geom、0.005)) を選択します。-- optionsパラメーターを指定します。
    tableAからst_area(st_union(geom, '{"parallel": 4}'::cstring)) を選択します。-- gridsizeおよびoptionsパラメータを一度に指定します。
    tableAからst_area(st_union(geom、0.005、'{"parallel": 4}'::cstring)) を選択します。