全部产品
Search
文档中心

PolarDB:ST_Union

更新时间:Jul 02, 2025

Topik ini menjelaskan fungsi ST_Union, yang membangun objek geometri yang mewakili gabungan dari beberapa objek geometri yang ditentukan.

Sintaksis

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);

Parameter

ParameterDeskripsi
g1fieldBidang objek geometri yang ingin Anda tentukan dalam dataset.
g1Objek geometri pertama yang ingin Anda tentukan.
g2Objek geometri kedua yang ingin Anda tentukan.
g1ArraySebuah array yang terdiri dari objek geometri.
gridsizeUkuran grid yang ingin Anda tentukan. Parameter ini digunakan untuk menggabungkan simpul dalam grid yang sama saat Anda melakukan operasi penggabungan. Nilai default adalah -1.0, yang menunjukkan bahwa parameter ini dinonaktifkan.
optionsStatus fitur komputasi paralel dan derajat paralelisme yang ingin Anda tentukan. Parameter ini digunakan untuk mengaktifkan fitur komputasi paralel dan menentukan derajat paralelisme.

Jika Anda mengaktifkan fitur ini, Anda harus menentukan nilai parameter ini sebagai string JSON, seperti '{"parallel": 4}'. Derajat paralelisme berkisar antara 1 hingga 64. Contoh nilai tersebut menunjukkan bahwa fitur komputasi paralel diaktifkan dan derajat paralelisme adalah 4. Nilai default adalah '{}', yang menunjukkan bahwa fitur komputasi sekuensial digunakan.

Deskripsi

  • Tipe keluaran fungsi ini adalah MULTI atau GeometryCollection. Fungsi ST_Union memiliki dua versi:
    • Versi 1: Input fungsi ST_Union adalah dua objek geometri. Keluarannya berupa objek MULTI, NON-MULTI, atau GeometryCollection. Jika salah satu dari dua objek geometri adalah NULL, fungsi ST_Union mengembalikan NULL.
    • Versi 2: Fungsi ST_Union bekerja sebagai fungsi agregat. Inputnya adalah kumpulan objek geometri, dan keluarannya dapat berupa objek MULTI atau NON-MULTI.
  • Fungsi ST_Collect dan fungsi ST_Union dapat dipertukarkan. Fungsi ST_Union mencoba melarutkan batas-batas objek geometri yang ditentukan untuk memeriksa apakah objek MultiPolygon yang dibangun memiliki bagian yang berpotongan. Oleh karena itu, dalam banyak kasus, ST_Union berjalan lebih lambat daripada fungsi ST_Collect.

Contoh

  • Contoh berikut menunjukkan perbedaan antara fungsi ST_Union dan fungsi 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
  • Contoh berikut menunjukkan perhitungan dengan konfigurasi berbeda dari parameter gridsize dan options:
    -- Tentukan parameter gridsize.
    select st_area(st_union(geom, 0.005)) from tableA;
    
    -- Tentukan parameter options.
    select st_area(st_union(geom, '{"parallel": 4}'::cstring)) from tableA;
    
    -- Tentukan parameter gridsize dan options sekaligus.
    select st_area(st_union(geom, 0.005, '{"parallel": 4}'::cstring)) from tableA;