Я новичок в PostgreSQL, так что терпите меня.
У меня есть две таблицы, одна называется «многоугольники» с несколькими полигонами, а другая называется «бокс», которая содержит только один многоугольник (мой ограничивающий прямоугольник). Мой запрос выбирает все многоугольники в "многоугольниках", которые попадают в ограничивающий прямоугольник "прямоугольник" - клип, если хотите. Обе таблицы имеют два столбца, один из которых содержит их идентификаторы, а другой - их GeoJSON под названием «the_geom».
Мне нужен один столбец, содержащий идентификаторы многоугольников, попадающих в ограничивающую рамку, другой столбец с GeoJSON этих многоугольников, называемый «the_geom_webmercator», еще один, называемый «polygonarea», с площадью каждого многоугольника, а затем еще один столбец с именем «totalarea», который содержит ОДИНАКОВОЕ ТОЧНОЕ ЗНАЧЕНИЕ для каждого многоугольника (значение представляет собой сумму всех многоугольников). Однако простой запрос SUM не сработает, поскольку он возвращает только 1 значение. Вместо этого я хочу, чтобы это значение заполнило весь столбец. Ниже то, что я пробовал; "СУММ ... КАК" - это рассматриваемая часть.
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