Löschen Doppelte Zeilen in SQL

Ich habe eine Tabelle mit unique-id, aber doppelte Reihe von Informationen.

Finde ich die Zeilen mit den Duplikaten mithilfe dieser Abfrage

SELECT
    PersonAliasId, StartDateTime, GroupId, COUNT(*) as Count
FROM
    Attendance
GROUP BY
    PersonAliasId, StartDateTime, GroupId
HAVING
    COUNT(*) > 1

Kann ich Sie manuell löschen Sie die Zeilen, während die 1 brauche ich mit dieser Abfrage

Delete
From Attendance
Where Id IN(SELECT
    Id
FROM
    Attendance
Where PersonAliasId = 15
    and StartDateTime = '9/24/2017'
and GroupId = 1429
Order By ModifiedDateTIme Desc
Offset 1 Rows)

Ich bin nicht versiert in SQL genug, um herauszufinden, wie man die Zeilen in der ersten Abfrage zum löschen der Duplikate, so dass hinter dem jüngsten. Es gibt über 3481 Datensätze von der ersten Abfrage zurückgegeben, dies zu tun eins nach dem anderen manuell.

Wie finde ich die doppelten Zeilen wie die erste Abfrage und löschen alle, aber die jüngsten, wie der zweite?

Schreibe einen Kommentar