我在160平方公里的面积上拥有大量的工作场所(+/- 200,000个),并且分布在大约20年的时间里。
我想为每个工作场所获得的是:
ID
相交的地方的ID
所有空间相交的工作台的Min_Start_Date日期
所有空间上相交的工作场所的Max_Start_Date
所以基本上我需要等价于“按交叉点分组”,有人知道如何解决吗?
工作场所
ID整数
StartDate日期
结束日期
Workplaces_GIS:
ID整数
形状SDOgeometru
答案 0 :(得分:1)
如果您使用的是11g R2或更高版本,则可以使用以下查询:
SELECT a.ID,
listagg(b.ID, ',') within group (order by b.ID) as Intersect_ids,
min(b.StartDate) as Min_Start_Date,
max(b.EndDate) as Max_Start_Date
FROM workplaces a, workplaces b
WHERE a.ID != b.ID
AND sdo_relate(a.geom, b.geom, 'mask = anyinteract') = 'TRUE'
GROUP BY a.ID;