Duplikate finden

Um in einer Benutzerdatenbank Duplikate ausfindig zu machen, in der jedoch ausschließlich LDAP-IDs statt Namen gespeichert werden, kann man folgenden Query verwenden:

USE myApplicationsDB;
SELECT u.idUser, uc.dupeCount
FROM tblUsers u
INNER JOIN (
    SELECT LDAPGUID, COUNT(*) AS dupeCount
    FROM tblUsers
    GROUP BY LDAPGUID
    HAVING COUNT(*) > 1
) uc ON u.LDAPGUID = uc.LDAPGUID

Ein eleganterer Weg, um z.B. in einer Termindatenbank Duplikate hintereinander aufzulisten, wäre folgender:

SELECT ID, Employees_ID, Customer_ID, Begin, Description
FROM Appointments
WHERE EXISTS (
    SELECT ID FROM Appointments Dup WHERE Appointments.Employees_ID = Dup.Employees_ID AND
                                          Appointments.Customer_ID = Dup.Customer_ID AND
                                          Appointments.Begin = Dup.Begin AND
                                          Appointments.Description = Dup.Description AND
                                          Appointments.ID <> Dup.ID)
ORDER BY ID;
dev/sql/duplikate.txt · Zuletzt geändert: 24.05.2018, 10:22 Uhr von wikiredaktion@reneknipschild.de
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 3.0 Unported
rkWiki wird freundlich bereitgestellt von
René Knipschild – Custom Software Development, Ihr Partner in Sachen IT-Beratung & individueller Software-Entwicklung. www.IT-Beratung-Nordhessen.de – Made in Germany
Copyleft inverted copyright sign 2012-2024 René Knipschild | www.reneknipschild.net | Impressum | Datenschutz