QGis SQL 查询 - "Deleting almost duplicates entries"
QGis SQL Query - "Deleting almost duplicates entries"
我有一个 table,在另一个 table 的所有点之间有一个距离矩阵。在距离矩阵上,我只保留了距离小于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,我也只需要保留原始 table.
上的 1
我用的是QGis的SQL查询工具,但我不太会编程。谁能帮帮我?
谢谢!
您可以在连接中使用一些子查询来检索要删除的值
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
我有一个 table,在另一个 table 的所有点之间有一个距离矩阵。在距离矩阵上,我只保留了距离小于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,我也只需要保留原始 table.
上的 1我用的是QGis的SQL查询工具,但我不太会编程。谁能帮帮我?
谢谢!
您可以在连接中使用一些子查询来检索要删除的值
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