Postgresql 在Qgis或Postgres中合并非相邻多边形

Postgresql 在Qgis或Postgres中合并非相邻多边形,postgresql,merge,postgis,qgis,Postgresql,Merge,Postgis,Qgis,我正在使用Qgis和PostgreSQL。但我不知道如何将截图中不相邻的多边形合并到一个记录中?有人能帮我解决这个问题吗 我想所有的多边形与同一猫合并在一个记录 请参见此处的屏幕截图: Thnx如果你想使用Postgres,你需要创建一个选择使用 您可以尝试创建一个数组 我在我的状态表中尝试这个,效果很好 SELECT ST_Union(a_geom) FROM (SELECT array_agg(e.geom) as a_geom FROM mapas.estadosv

我正在使用Qgis和PostgreSQL。但我不知道如何将截图中不相邻的多边形合并到一个记录中?有人能帮我解决这个问题吗

我想所有的多边形与同一猫合并在一个记录

请参见此处的屏幕截图:


Thnx

如果你想使用Postgres,你需要创建一个
选择
使用

您可以尝试创建一个数组

我在我的状态表中尝试这个,效果很好

SELECT ST_Union(a_geom)
FROM  (SELECT  array_agg(e.geom) as a_geom 
       FROM mapas.estadosven_region e
      ) t
我做了另一个测试,看起来这个也可以

SELECT ID, ST_Union(geom) 
FROM test_dissolve_function t 
WHERE ST_isValid(geom)='t' 
GROUP BY ID;

谢谢你回复胡安!我查了一下,到目前为止我已经有了这个,但是你怎么能显示cat列呢?从test_dissole_函数中选择geom,ST_multi(ST_Union(f.geom))作为f GROUP BY geom您运行了什么代码?因为我得到了这个错误:GEOSUnaryUnion:TopologyException:Input geom 1无效:运行此代码后在点或附近自相交:选择cat,ST_multi(ST_Union(f.geom))通过catI将函数作为f组进行测试,得到以下错误:GEOSUNIARYUNION:TopologyException:输入geom 0无效:234754.01867566622 579837.20636547857处234754.01867566622 579837.20636547857点或附近的自相交看起来与您的数据有关。在我的例子中,我确信州边界并不精确,所以也会发生一些交叉。你能先试着只连接两个简单的对象吗?而不是所有的桌子?使用
ST_Union
的第一个签名,您还可以将函数压缩为join_mygeom(id)这样您就可以找到join给您带来的错误。使函数返回-1如果我运行了任何错误,请从测试函数中选择ST_IsValid(geom);我有1行返回了瀑布,所以我想这是我的数据,但我还不知道如何解决这个问题
SELECT ID, ST_Union(geom) 
FROM test_dissolve_function t 
WHERE ST_isValid(geom)='t' 
GROUP BY ID;