【发布时间】:2026-02-07 13:30:01
【问题描述】:
我有一个table pline_sp,它有一个包含SDO_GEOMETRY 多边形的几何列。每个多边形都有一个类类型。我编写了一个 SQL 查询来查找类 C1 并从类 C2 中找到位于类 C1 内的所有多边形,然后对所有的区域求和。
我不确定这是不是最好的方法,但查询如下:
select sum(SDO_GEOM.SDO_AREA(result.geom, 0.005, 'unit=SQ_KM'))
from (SELECT a.geom
FROM pline_sp a,
(select A.Geom from pline_sp A where A.class='C1') B
WHERE SDO_RELATE(A.Geom, B.Geom, 'mask=inside') = 'TRUE'
AND A.Class='C2') result;
表中有大约 7 个来自类 C1 的多边形,每个多边形都有不同的 label。
我想得到其中由标签分隔的多边形区域的总和,而不是所有的总和。
我希望结果是这样的:
Label Area
--------------
l324 321.54
l543 325.21
...
在 SQL 中是否有任何解决方案或者我应该编写程序? 谢谢。
【问题讨论】:
标签: oracle group-by polygon spatial