我使用的表每行都有几个几何。我希望每个几何图形在我的数据库中仅出现一次。我按距离对这对夫妇进行了排序。我成功拥有了不同的geom1或geom2,但从未同时使用过。这些ID链接到它们的相关几何。
| id1 | id2 | distance| | id1 | id2 | distance|
| 1 | 2 | 3 | | 1 | 2 | 3 |
| 2 | 1 | 4 | -> | 2 | 1 | 7 |
| 2 | 2 | 7 |
| 1 | 1 | 9 |
我的表包含超过200万行,因此性能是一个问题。 我教过要创建几个临时表,在其中我先对id1进行分组,然后对id2进行分组,收集丢失的值并一次又一次地进行分组...但是,如果有人有更好的主意,那就太好了。
谢谢
答案 0 :(得分:0)
如果我正确理解,您正在寻找id1,id2和距离的三重组合:
SELECT DISTINCT id1, id2 , distance FROM <table name>;
或
SELECT id1, id2 FROM <table name> GROUP BY id1, id2, distance;
答案 1 :(得分:0)
您似乎想要:
select t1.*
from table t1
where id2 = (select max(t1.id2) from table t2 where t2.id1 = t1.id1);