Es kommt vor, dass man in einer Datenbank-Tabelle mehrere Datensätze mit dem gleichen Inhalt hat und diese finden möchte:
SELECT Email, FKMarketID, FKLanguageID, Count(*) FROM NewsletterSubscriptions
GROUP BY Email, FKMarketID, FKLanguageID HAVING COUNT(*) > 1
Die Kriterien für die Eindeutigkeit sind hier die Felder Email, FKMarketID und FKLanguageID.
Will man sie jetzt noch löschen, kann man folgendes Statement benutzen:
DELETE FROM NewsletterSubscriptions WHERE SubscriptionID IN
(
SELECT T1.SubscriptionID FROM NewsletterSubscriptions T1, NewsletterSubscriptions T2
WHERE T1.Email = T2.Email and T1.FKMarketID = T2.FKMarketID AND T1.FKLanguageID = T2.FKLanguageID AND T1.SubscriptionID > T2.SubscriptionID
)