आपकी समस्या इस कारण से है कि आपने समूह द्वारा क्षेत्र में क्या शामिल किया है।
ST_UNION एक समग्र कार्य है, जिसका अर्थ है कि यह GROUPपैरामीटर के रूप में आपके द्वारा निर्दिष्ट के आधार पर भंग हो रहा है ।
यहाँ आपने जो दर्ज किया है:
SELECT c.fid, ST_Union(c.boundaryshape) FROM c Group by c.fid,c.boundaryshape;
इसके अनुसार, आप अपने द्वारा समूहीकरण कर रहे हैं fid, जो संभवतः एक अद्वितीय पहचानकर्ता है, और इसके द्वारा भी boundaryshape, जो कि ज्यामिति है। इसके साथ समस्या यह है कि यह बहुत कम संभावना है कि एक अद्वितीय आईडी साझा करने वाली सुविधाओं में समान ज्यामिति होने वाली हैं। इसलिए, 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
नीचे सूचीबद्ध पहला उदाहरण देखें और ध्यान दें कि इसमें समूह में ज्यामिति को अनुभाग द्वारा शामिल नहीं किया गया है।