我是 PostgreSQL 的新手,所以请耐心等待。
我有两张桌子,一张叫做“polys”,有几个多边形,另一张叫做“box”,只包含一个多边形(我的边界框)。我的查询选择了“多边形”中落在边界框“框”内的所有多边形——如果你愿意,可以选择一个剪辑。两个表都有两列,一列包含它们的 ID,另一列包含名为“the_geom”的 GeoJSON。
我想要的是一列包含落在边界框内的多边形的 ID,另一列包含这些多边形的 GeoJSON,称为“the_geom_webmercator”,另一列称为“polygonarea”,每个多边形的面积,然后是另一列称为“totalarea”,其中包含每个多边形的相同值(该值是所有多边形的总和)。但是,简单地询问 SUM 是行不通的,因为它只返回 1 个值。相反,我希望这个值填满整个列。以下是我尝试过的;`SUM...AS' 是有问题的部分。
SELECT polys.id, ST_Transform(ST_Intersection(polys.the_geom, box.the_geom),3857)
AS the_geom_webmercator,
ST_Area(ST_Transform(ST_Intersection(polys.the_geom,box.the_geom),3857))
AS polygonarea,
SUM(ST_Area(ST_Transform(ST_Intersection(polys.the_geom,box.the_geom),3857)))
AS totalarea FROM polys,box