2014-02-24 4 views
17

Ich habe einige Werte in die Tabelle DataTab eingefügt.
Finde doppelten Spaltenwert in sqlite

SomeId: Integer  => Autogenerated primary key. 
DataId: Guid 
DataNumber: Integer 
DataType: varchar 

die oben sind die Spalte in meinen Tabellen, möchte ich finden, wenn die Tabelle DataId Werte Wiederholte enthält. Es ist lange her, dass ich mit Datenbanken gearbeitet habe. Jetzt kann ich einfache Abfragen herausfinden. Aber ich fand das etwas schwierig.

Ich habe die folgende Abfrage versucht, ist das korrekt?

SELECT * from (Select * from DataTab) AS X 
where DataId= X.DataId AND SomeId!=X.SomeId 

Antwort

39
SELECT DataId, COUNT(*) c FROM DataTab GROUP BY DataId HAVING c > 1; 
+0

Und wenn ich beide, wenn DataId und DataNumber überprüfen möchten für einen Datensatz gleich sind, dann würde die Abfrage wie folgt, SELECT DataId, COUNT (*) c FROM DATATAB GROUP BY DataId, DataNumber HAVING c> 1 ,, Bin ich richtig? – 51k

+4

SELECT DataId, DataNumber, COUNT (*) c FROM DataTab GROUP BY DatenId, DataNumber HAVING c> 1. Da alle Felder, die Sie in der Gruppe aufnehmen, in SELECT-Anweisungen hinzugefügt werden sollen. –

+0

Bitte aktualisieren Sie es gemäß stackoverflow Richtlinien, wenn Sie festgestellt haben, dass es Ihren Erwartungen entspricht/Ihr Problem wurde gelöst. –

Verwandte Themen