Todos os produtos
Search
Central de documentação

ApsaraDB RDS:ST_Union

Última atualização: Aug 27, 2026

Calcula a união geométrica de vários objetos geometry, dissolve limites compartilhados e mescla regiões sobrepostas em um único objeto geometry de saída.

Sintaxe

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

Parâmetros

Parâmetro

Descrição

g1Field

Coluna de geometria do conjunto de dados a unir. Usada na variante agregada.

g1

Primeiro objeto geometry.

g2

Segundo objeto geometry.

g1Array

Array de objetos geometry para união.

gridsize

Tamanho da célula da grade para ajuste de vértices durante a operação de união. Vértices na mesma célula são mesclados. Padrão: -1.0 (desativado).

options

String JSON para ativar computação paralela e definir o grau de paralelismo (1–64). Exemplo: '{"parallel": 4}' ativa a computação paralela com 4 workers. Padrão: '{}' (computação sequencial).

Descrição

A função ST_Union tem duas versões:

  • Versão 1: recebe dois objetos geometry (g1, g2) e retorna a união como MULTI, NON-MULTI ou GeometryCollection. Se alguma entrada for NULL, a função retorna NULL.

  • Versão 2: opera como função agregada em uma coluna de conjunto de dados (g1Field) ou em um array de objetos geometry (g1Array). Retorna um objeto MULTI ou NON-MULTI.

Notas de uso

ST_Union vs ST_Collect

A ST_Union dissolve os limites entre as geometrias de entrada e verifica regiões sobrepostas. A ST_Collect agrupa geometrias sem processá-las. Por isso, a ST_Union geralmente é mais lenta que a ST_Collect.

Use a ST_Collect quando o resultado não precisar ser livre de sobreposições. Use a ST_Union quando for necessária uma saída topologicamente limpa, como ao calcular a área total de polígonos mesclados.

Exemplos

Comparação entre ST_Union e ST_Collect

A consulta a seguir executa ambas as funções em dois polígonos adjacentes. A ST_Union dissolve a aresta compartilhada; a ST_Collect a preserva.

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

Uso de gridsize e options

Os exemplos a seguir mostram a variante agregada com os parâmetros opcionais gridsize e 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;

Próximos passos