[postgis-users] How to improve query with repeated spatial join query
Alexandre Neto
senhor.neto at gmail.com
Fri May 3 03:24:36 PDT 2013
Hello all,
My goal is to calculate for each building it's volume
percentage relatively to the total buildings volume inside the statistical
parcel he is in.
I have written the SQL code below (that works), but I think it might be
improved, since I see repeated proceedings in it.
I would greatly appreciate if someone give me some advice about it.
Thanks,
Alexandre Neto
-----------
SELECT
b.gid,
b.volume / t.total_volume as vol_per,
b.geom,
p.bgri11 as bgri11,
FROM
buildings as b,
stat_parcels as p,
(SELECT
sum(b.volume) as total_volume,
p.bgri11 as bgri11
FROM
buildings as b,
stat_parcels as p
WHERE
ST_CONTAINS(p.geom, St_centroid(b.geom))
GROUP BY
p.bgri11) as t
WHERE
ST_CONTAINS(g.geom, St_centroid(f.geom))
AND p.bgri11 = t.bgri11;
My tables look like this:
CREATE TABLE buildings
gid serial NOT NULL,
volume double precision,
geom geometry(MultiPolygon,27493),
CONSTRAINT edificios_habitacao_pkey PRIMARY KEY (gid);
CREATE TABLE stat_parcels
gid serial NOT NULL,
bgri11 character varying(11),
geom geometry(MultiPolygon,27493),
CONSTRAINT bgri11_cascais_pkey PRIMARY KEY (gid)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20130503/32f450e8/attachment.html>
More information about the postgis-users
mailing list