All Products
Search
Document Center

ApsaraDB RDS:ST_Union

Last Updated:Mar 29, 2026

Menghitung gabungan geometris dari beberapa objek geometry dengan menghilangkan batas bersama dan menggabungkan wilayah yang tumpang tindih menjadi satu objek geometry output.

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
g1FieldKolom geometry dalam set data yang akan digabungkan. Digunakan dalam varian agregat.
g1Objek geometry pertama.
g2Objek geometry kedua.
g1ArrayArray berisi objek geometry yang akan digabungkan.
gridsizeUkuran sel grid untuk menyesuaikan vertex selama operasi union. Vertex yang berada dalam sel grid yang sama akan digabungkan. Default: -1.0 (dinonaktifkan).
optionsString JSON untuk mengaktifkan komputasi paralel dan mengatur tingkat paralelisme (1–64). Contoh: '{"parallel": 4}' mengaktifkan komputasi paralel dengan 4 worker. Default: '{}' (komputasi sekuensial).

Deskripsi

Fungsi ST_Union memiliki dua versi:

  • Versi 1 — menerima dua objek geometry (g1, g2) dan mengembalikan gabungannya sebagai objek MULTI, NON-MULTI, atau GeometryCollection. Jika salah satu input bernilai NULL, fungsi ini mengembalikan NULL.

  • Versi 2 — beroperasi sebagai fungsi agregat pada kolom set data (g1Field) atau array objek geometry (g1Array), serta mengembalikan objek MULTI atau NON-MULTI.

Catatan penggunaan

ST_Union vs ST_Collect

ST_Union menghilangkan batas antara geometri input dan memeriksa wilayah yang tumpang tindih, sedangkan ST_Collect hanya mengelompokkan geometri tanpa memprosesnya. Oleh karena itu, ST_Union umumnya lebih lambat daripada ST_Collect.

Gunakan ST_Collect jika hasilnya tidak perlu bebas tumpang tindih. Gunakan ST_Union jika Anda memerlukan output yang topologis bersih—misalnya, saat menghitung luas total poligon yang telah digabungkan.

Contoh

Bandingkan ST_Union dan ST_Collect

Kueri berikut menjalankan kedua fungsi tersebut pada dua poligon yang bersebelahan. ST_Union menghilangkan sisi bersama, sedangkan ST_Collect mempertahankannya.

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

Gunakan gridsize dan options

Contoh berikut menunjukkan varian agregat dengan parameter opsional 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;

Lanjutan