me he dado cuenta de que la ejecución de este sub consulta¿Cómo puedo optimizar esta subconsulta como unirse?
SELECCIONAR ST_Area (ST_Union (ST_Transform (ST_Intersection ((SELECT poly1.the_geom de poly1 DONDE poly1.polygon_type = 'P'), poly2.the_geom), 3857)))
AS area_of_P dE poly1, poly2
es significativamente más lento que la ejecución de este unirse
SELECT ST_Area (ST_Union (ST_Transform (ST_Intersection (poly1.the_geom, poly2.the_geom), 3857)))
AS area_of_poly
DE poly2
LEFT JOIN poly1 en ST_Intersects (poly1.the_geom , poly2.the_geom)
DONDE poly2.polygon_type = 'P'
Sin embargo, necesito de ampliar esta segunda jo versión ined para volver más columnas, cada una con el área de un tipo polígono dado calculado, es decir
SELECCIONAR ST_Area (ST_Union (ST_Transform (ST_Intersection ((SELECT poly1.the_geom de poly1 DONDE poly1.polygon_type = 'P'), poly2.the_geom), 3857))) AS area_of_P,
ST_Area (ST_Union (ST_Transform (ST_Intersection ((SELECT poly1.the_geom de poly1 DONDE poly1.polygon_type = 'S'), poly2.the_geom), 3857))) AS area_of_S
DESDE poly1, poly2
Lo sentimos, debería haber hecho esto más claro. Quiero devolver dos columnas. Una es el área del tipo de polígono 'P', la otra es el área del tipo de polígono 'S'. – John
Ver la respuesta actualizada. –
Funciona exactamente como lo necesito. Gracias Brett. – John