我写了一个查询来查找重复的几何。因此,查询返回的对象相等,但每个组只需要一个对象。我想知道是否有任何查询可以这样做?
我尝试了各种分组,汇总,多维数据集等功能。版本:Oracle Database 11g企业版11.2.0.3.0
这是查询示例:
select t1.id, t2.id
from geom_table t1, geom_table t2
where sdo_relate(t1.geometry,t2.geometry,'mask=equal') = 'TRUE'
and t1.id != t2.id
这是查询结果:
在此示例中,我有两组重复的几何:4098967、4098968和 4098964、4098965、4098969。
例如,我只需要4098967和4098964。
答案 0 :(得分:1)
更改id
比较:
select . . .
from geom_table t1 join
geom_table t2
on sdo_relate(t1.geometry,t2.geometry,'mask=equal') = 'TRUE' and
t1.id < t2.id
答案 1 :(得分:0)
您应该尝试以下代码:
select distinct t1.id,t2.id
from geom_table t1,geom_table t2
where sdo_relate(t1.geometry,t2.geometry,'mask=equal')= 'TRUE'
and t1.id != t2.id
更改在与众不同上进行,该操作将删除查询返回的元组中的所有重复项