2017-02-03 6 views
1

Ich möchte doppelte finden, wenn es in der ganzen Zeile über SQL doppelt vorhanden ist. Wie hier 2 Zeilen mit allen Werten finden Duplikate wieFinde doppelte Zeilen in sql

Daten mit Set

id employee_name  dept Dept_name 
1 Abhijit   10 Physics 
1 Abhijit   10 Physics 
2 Debjit   20 Chemis 
3 partha   30 Maths 

Ergebnis

id employee_name  dept Dept_name 
1 Abhijit   10 Physics 
1 Abhijit   10 Physics 
+1

Machen Sie einen Self Join auf allen Feldern. –

+0

Siehe diesen Beitrag. http://stackoverflow.com/questions/7694263/filtering-duplicates-in-a-table-without-a-primary-key – n0klu

Antwort

4

einstellen können Sie verwenden Zählung mit (*)> 1 Gruppierung von Ihre Kollegen

select id, employee_name , dept, Dept_name 
from my_table 
group by id, employee_name , dept, Dept_name 
having count(*) > 1 
2

Einfache Gruppe durch und basierten Filter in Klausel

Select id, employee_name, dept, dept_name 
From your_table 
Group by id, employee_name, dept, dept_name 
Having count(*) > 1; 
mit zählen
+0

its't kommt nicht – Abhijit

+0

Sie haben wahrscheinlich Leerzeichen oder nicht druckbare Zeichen in Ihrer Zeichenfolge. Ansonsten sollte die obige Lösung gut funktionieren. – GurV

0

Self join

SELECT a.* from employees a, employees b WHERE a.id = b.id and a.employee_name = b.employee_name and a.dept = b.dept; 

dept_name wahrscheinlich das gleiche für die deps mit derselben ID, so dass keine Notwendigkeit, schließen sie in where-Klausel

+0

Ich habe 27 Spalten in meiner Tabelle.self-Join ist nicht möglich – Abhijit

+0

jemand bitte helfen – Abhijit

+0

Sie sollten eine ID/Diskriminator-Spalte (s) verwenden, die Ihr Primärschlüssel sein wird und garantieren, dass die zwei Zeilen, die den gleichen Wert haben Spalte sind in der Tat Duplikate. Wenn eine solche Beziehung aus Ihren Daten abgeleitet werden kann, reicht es aus, nur darauf zu schließen. In diesem konkreten Beispiel sieht das Feld "id" wie ein guter Kandidat aus. –