Heim >Datenbank >MySQL-Tutorial >Wie finde ich in SQL exakte doppelte Datensätze über mehrere Spalten hinweg?

Wie finde ich in SQL exakte doppelte Datensätze über mehrere Spalten hinweg?

Barbara Streisand
Barbara StreisandOriginal
2025-01-04 11:36:34846Durchsuche

How to Find Exact Duplicate Records Across Multiple Columns in SQL?

Doppelte Werte in mehreren Spalten finden

In Ihrem SQL-Code versuchen Sie, doppelte Datensätze anhand bestimmter Kriterien zu identifizieren. Um dies zu erreichen, können Sie eine Kombination aus Gruppierung und bedingter Filterung verwenden.

Das von Ihnen bereitgestellte Beispiel zielt darauf ab, doppelte Datensätze zu finden, die sowohl mit der Namens- als auch der Stadtspalte übereinstimmen. Allerdings weist Ihre ursprüngliche Abfrage ein kleines Problem auf: Sie umfasst auch Datensätze, bei denen nur der Name oder die Stadt übereinstimmt, anstatt dass eine genaue Übereinstimmung für beide erforderlich ist.

Um dieses Problem zu beheben, können Sie die Abfrage wie folgt ändern:

SELECT s.id, t.*
FROM [stuff] s
JOIN (
    SELECT name, city, COUNT(*) AS qty
    FROM [stuff]
    GROUP BY name, city
    HAVING COUNT(*) > 1
) t ON s.name = t.name AND s.city = t.city

Diese Abfrage verknüpft die Tabelle [stuff] mit einer Unterabfrage, die die Anzahl doppelter Datensätze für jedes eindeutige Paar aus Namens- und Stadtwerten berechnet. Indem Sie die HAVING-Klausel so festlegen, dass sie nur Gruppen mit einer Anzahl größer als 1 umfasst, können Sie die Ergebnisse auf Zeilen beschränken, die tatsächliche Duplikate darstellen.

Die Ausgabe dieser Abfrage sollte Ihrem gewünschten Ergebnis entsprechen:

id name city
904834 jim London
904835 jim London
90145 Fred Paris
90132 Fred Paris
90133 Fred Paris

Das obige ist der detaillierte Inhalt vonWie finde ich in SQL exakte doppelte Datensätze über mehrere Spalten hinweg?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn