Das Komma ist das Problem.
Wenn Sie geom_line
im Ergebnis enthalten möchten, verwenden Sie
SELECT DISTINCT ON (geom_line) geom_line, gid FROM edge_table;
Else verwenden
SELECT DISTINCT ON (geom_line) gid FROM edge_table;
Aber wenn Ihr Ziel nur um Duplikate zu entfernen ist, würde ich sagen, dass Sie verwenden sollten
SELECT DISTINCT geom_line, gid FROM edge_table;
DISTINCT
garantiert Einzigartigkeit über das gesamte Ergebnis se t, während DISTINCT ON
Eindeutigkeit über den Ausdruck in Klammern garantiert. Wenn mehrere Zeilen vorhanden sind, in denen der Ausdruck in Klammern identisch ist, wird eine dieser Zeilen ausgewählt. Wenn Sie eine ORDER BY
Klausel haben, wird die erste Zeile ausgewählt.
DISTINCT a, b
ist das gleiche wie DISTINCT ON (a, b) a, b
.
'SELECT DISTINCT EIN (geom_line) geom_line, gid FROM edge_table;' Lesen: http://www.postgresqlforbeginners.com/2010/11/sql-distinct-distinct-on-and-all.html – aaa