假设我有两个表geom_levels
和taz_geoms
,其中taz_geoms
的列如下:
taz_geoms
id(int) state(int) county(int) taz(int) geom(geometry(MultiPolygon,4326))
和geom_levels看起来像这样:
geom_levels
TAZ COUNTY STATE DISTRICT
1 1 29 1
2 1 29 1
3 1 29 1
4 2 29 2
5 2 29 2
6 2 29 2
7 2 29 3
8 3 29 3
9 3 29 3
10 3 29 4
11 3 29 4
12 3 29 4
13 4 29 5
14 4 29 5
15 4 29 5
16 4 29 6
17 4 29 6
我如何将这些taz几何结构组合成县,州和地区的几何形状?我想要一个county_geoms
,state_geoms
和district_geoms
表格。我已经看到你可以将ST_UNION
与geom数组一起使用,但我如何为县或地区生成这样的数组呢?
我在想各种各样的事情:
SELECT ST_UNION(SELECT geom from taz_geoms GROUP BY county);
以及地区:
SELECT ST_UNION(SELECT geom from taz_geoms t LEFT JOIN geom_levels gl ON gl.taz = t.taz GROUP BY district);
但这些选择看不出来。
想法?
答案 0 :(得分:0)
尝试:
SELECT ST_UNION( ARRAY ('你选择geoms QUERY'));
在你的情况下:
SELECT ST_UNION(ARRAY((SELECT geom from taz_geoms t LEFT JOIN geom_levels gl ON gl.taz = t.taz GROUP BY district)));
我遇到了同样的问题,并在ARRAY()函数中使用postgre工作;)