ฉันมีตารางรูปหลายเหลี่ยม (กลุ่มบล็อกการสำรวจสำมะโนประชากร) ใน postgres ฉันต้องการติดแท็กกลุ่มบล็อกแต่ละกลุ่มด้วยเมือง (ตารางรูปหลายเหลี่ยมอื่น) ส่วนใหญ่อยู่ภายใน เป็นไปได้ไหม ฉันคิดว่าฉันจำเป็นต้องสร้างสิ่งที่ต้องการ:
select b.*,t.name
from blockgroups b, towns t
where (st_area(st_intersection(b.wkb_geometry, t.wkb_geometry))/st_area(b.wkb_geometry)) > .5
แต่แบบสอบถามนี้ใช้เวลาตลอดไป (ฉันมีกลุ่มบล็อกประมาณ 5,000 กลุ่มและ 375 เมือง ... ) คำแนะนำใด ๆ เกี่ยวกับวิธีทำให้คิวรีนี้ใช้งานได้ถ้ามันไม่ถูกต้องหรือเร็วกว่านั้นถ้ามันถูกต้อง?