Tengo una tabla de puntos (escuelas t1) y una tabla de pequeños polígonos (edificios t2). Están dentro de los grandes polígonos (p) que representan a los distritos. Estoy tratando de obtener el promedio de la distancia de una escuela para todos los edificios dentro del mismo distrito. Soy realmente nuevo en esto, y encontré un post que parecía tener la respuesta, pero no acabo de conseguirlo. ¿Qué estoy haciendo mal?
WITH SCHOOLS AS (
SELECT p.gid, p.cell, t1.name, code2, pub_pri2, enrollment, t1.geom as wkb_geometry
FROM mesa.schools2 t1
LEFT JOIN mesa.schldist_cellpop p ON ST_CONTAINS (p.geom, t1.geom)
ORDER BY p.gid),
DISTANCES AS (
SELECT p.cell, t1.geom <-> t2.geom as dist FROM
(SELECT distinct on(t1.gid) t1.gid, p.cell, t1.geom,
(SELECT t2.geom FROM mesa.school_pop t2
ORDER BY t2.geom<->B.wkb_geometry
LIMIT 1) AS other_geometry
FROM mesa.schldist_cellpop p, SCHOOLS B, mesa.school_pop t2, mesa.schools2 t1) AS FOO)
SELECT distinct p.cell,
count(p.cell) over(partition by p.cell),
round(avg(distance) over(partition by p.cell)::NUMERIC, 1)
FROM DISTANCES
WHERE DISTANCES IS NOT NULL
El error que estoy recibiendo es ERROR: falta DE cláusula de entrada para la tabla "p" LÍNEA 9: SELECCIONE p.celular, t1.geom <-> t2.geom como dist DE