我有一张桌子,另一张桌子的所有点之间都有距离矩阵。在距离矩阵上,我只将木质灯的距离保持在100m以内。 我称距彼此不到100 m的点为重复项。但是在距离矩阵上,每个重复项需要2行 距离矩阵如下所示:
InputID TargetID Distance
1 2 75
1 3 35
2 1 75
3 1 35
我只想保留这些重复项中的一个,这意味着在上一个示例中,我只想保留1的ligne,因为2和3放置在距100m以下的位置。 1.但是,如果我仅将1保留在距离矩阵上,则还需要仅将1保留在原始表上。
我使用QGis的SQL查询工具,但是我真的不知道如何编程。有人可以帮我吗?
谢谢!
答案 0 :(得分:0)
您可以在join中使用一些子查询来检索要删除的值
delete from my_table m2
inner join (
select m.distance, min(m.InputId) min_id
from my_table m.
inner join (
select distance, count(*)
from my_table
group by Distance
having count(*) > 1
) t on t.distance = m.distance
group by distance
) t2 on t2.distance = m2.distance and t2.min_id = m2.InputId