I stellte diese Frage vor einiger Zeit um doppelte Datensätze auf der Grundlage einer Spalte zu löschen. Die Antwort hat gut funktioniert:
delete from tbl
where id NOT in
(
select min(id)
from tbl
group by sourceid
)
Ich habe jetzt eine ähnliche Situation, aber die Definition eines doppelten Datensatzes basiert auf mehreren Spalten. Wie kann ich das obige SQL ändern, um doppelte Datensätze zu identifizieren, wenn ein eindeutiger Datensatz als verkettet aus Col1 + Col2 + Col3 definiert ist. Könnte ich einfach etwas in der Art machen?
delete from tbl
where id NOT in
(
select min(id)
from tbl
group by col1, col2, col3
)