945 Stimmen

Suche nach doppelten Werten in MySQL

Ich habe eine Tabelle mit einer varchar-Spalte und möchte alle Datensätze finden, die doppelte Werte in dieser Spalte haben. Was ist die beste Abfrage, die ich verwenden kann, um die Duplikate zu finden?

1voto

Vipin Jain Punkte 5437
Select column_name, column_name1,column_name2, count(1) as temp from table_name group by column_name having temp > 1

1voto

Iwan Ross Punkte 186

Danke an @novocaine für seine tolle Antwort und seine Lösung hat bei mir funktioniert. Ich habe sie leicht abgeändert, um eine Prozentsatz der wiederkehrenden Werte, was in meinem Fall erforderlich war. Nachstehend sehen Sie die geänderte Version. Sie reduziert die Prozentsatz zu zwei Dezimalstellen . Wenn Sie die ,2 auf 0 ändern, werden keine Dezimalstellen angezeigt, und auf 1, dann wird eine Dezimalstelle angezeigt, und so weiter.

SELECT GROUP_CONCAT(id), name, COUNT(*) c, 
COUNT(*) OVER() AS totalRecords, 
CONCAT(FORMAT(COUNT(*)/COUNT(*) OVER()*100,2),'%') as recurringPecentage
FROM table
GROUP BY name
HAVING c > 1

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X