Heim >Datenbank >MySQL-Tutorial >Wie finde ich doppelte Zeilen über mehrere Spalten hinweg in SQL?

Wie finde ich doppelte Zeilen über mehrere Spalten hinweg in SQL?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-03 16:14:39838Durchsuche

How to Find Duplicate Rows Across Multiple Columns in SQL?

Duplikate über mehrere Spalten hinweg finden

In SQL können Situationen auftreten, in denen Sie Zeilen mit doppelten Werten über mehrere Spalten hinweg identifizieren müssen. Angenommen, Sie haben eine Tabelle namens „stuff“, die Spalten wie ID, Name und Stadt enthält. Sie möchten nach Zeilen mit identischen Werten in den Spalten „Name“ und „Ort“ suchen.

SQL-Abfrage

Um dies zu erreichen, können Sie die folgende SQL-Abfrage verwenden:

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

Erklärung

  • Die Hauptabfrage (select s.id, t.*) wählt die ID-Spalte aus der Originaltabelle ([stuff]) und alle Spalten aus einer Unterabfrage (t) aus.
  • Die Unterabfrage (select name, city, count(*) as qty) gruppiert die Tabelle nach Name und Stadt und zählt die Anzahl der Vorkommen für jedes Paar.
  • The have count(*) > 1-Klausel filtert die Unterabfrage so, dass nur Namens- und Ortspaare mit einer Anzahl größer als 1 (d. h. Duplikate) enthalten sind.
  • Die Join-Bedingung (für s.name = t.name und s.city = t.city) Verknüpft die Originaltabelle basierend auf Name und Stadt mit der Unterabfrage und wählt Zeilen aus, in denen die Kombination mehrfach vorkommt mal.

Ausgabe

Diese Abfrage gibt die folgende Ausgabe zurück und zeigt die ID- und Name-Stadt-Paare, die Duplikate haben:

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 doppelte Zeilen über mehrere Spalten hinweg in SQL?. 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