Ich versuche also, einige Telefoneinträge in einer Datenbanktabelle zu bereinigen.Deduplizieren von Datenbankaufzeichnungen Vergleichen von Werten in zahlreichen Feldern
Ich habe herausgefunden, wie mit genauen Treffer in 2 Bereichen zu finden:
/* DUPLICATE first & last names */
SELECT
`First Name`,
`Last Name`,
COUNT(*) c
FROM phone.contacts
GROUP BY
`Last Name`,
`First Name`
HAVING c > 1;
Wow, großartig.
Ich möchte es weiter zu sehen, um zahlreiche Felder zu sehen, ob eine Telefonnummer in 1 von 3 Telefonfeldern ein Duplikat ist.
Also ich möchte 3 Felder überprüfen (general mobile
, general phone
, business phone
).
1.zu sehen, dass sie nicht leer sind ('') 2. um zu sehen, ob die Daten (Nummer) in einem von ihnen in den anderen 2 Telefonfeldern irgendwo in der Tabelle erscheint.
Also drückte ich meine begrenzte SQL über ihre Grenze Ich kam mit der folgenden, die Datensätze mit 3 leeren Telefonfelder & Datensätze auch, die keine doppelte Telefonnummern haben scheint.
/* DUPLICATE general & business phone nos */
SELECT
id,
`first name`,
`last name`,
`general mobile`,
`general phone`,
`general email`,
`business phone`,
COUNT(CASE WHEN `general mobile` <> '' THEN 1 ELSE NULL END) as gen_mob,
COUNT(CASE WHEN `general phone` <> '' THEN 1 ELSE NULL END) as gen_phone,
COUNT(CASE WHEN `business phone` <> '' THEN 1 ELSE NULL END) as bus_phone
FROM phone.contacts
GROUP BY
`general mobile`,
`general phone`,
`business phone`
HAVING gen_mob > 1 OR gen_phone > 1 OR bus_phone > 1;
klar meine Logik ist fehlerhaft & Ich fragte mich, ob jemand mich in die richtige Richtung zeigen könnte/erbarme etc ...
Vielen Dank
bitte Tag, das DBMS sind Sie –