問題は、フィールドごとのグループに含まれるものが原因である可能性があります。
ST_UNIONは集約関数です。つまり、GROUP
パラメーターとして指定したものに基づいてディゾルブします。
入力した内容は次のとおりです。
SELECT c.fid, ST_Union(c.boundaryshape) FROM c Group by c.fid,c.boundaryshape;
これによれば、fid
おそらく一意の識別子であるによってboundaryshape
、またジオメトリであるによってグループ化されます。これに伴う問題は、一意のIDを共有する機能が同一のジオメトリを持つ可能性が非常に低いことです。したがって、ST_Union
おそらく次のような結果になります。
Input:
fid boundaryshape
1 11
1 12
1 11
1 13
2 12
2 13
2 12
3 5
3 2
3 4
Output:
fid boundaryshape
1 (11 + 11)
1 12
1 13
2 (12 + 12)
2 13
3 2
3 4
3 5
この場合、削除fid
しようとしている同じの重複ジオメトリが実際にいくつかない限り、一意の識別子に基づいてのみディゾルブする必要があります。ただし、そのような状況でも、に基づいてグループ化するだけでよくfid
、ユニオンがジオメトリの重複を処理します。
私は次のことを試します:
SELECT c.fid, ST_Union(c.boundaryshape) FROM c GROUP BY c.fid;
これにより、共通の属性に基づいてすべての機能をディゾルブするという望ましい結果が得られますfid
。
PostGISサイトのヘルプドキュメントは次のとおりです 。ST_Union
一番下にリストされている最初の例を参照し、セクションごとのグループにジオメトリが含まれていないことに注意してください。