2014-02-24 97 views
17

我在表DataTab中插入了一些值。
在sqlite中查找重複的列值

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

以上是列在我的表,我想找到,如果表中包含重複DataId值。 我已經使用數據庫很久了。現在我可以弄清楚簡單的查詢。但是我發現這有些困難。

我試過以下查詢,這是正確的嗎?

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

回答

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

如果我要檢查,如果數據ID和DataNumber都是相同的記錄,那麼該查詢將如下, SELECT數據ID,COUNT(*)c從DataTab GROUP BY數據ID, DataNumber HAVING c> 1 ,,我說得對嗎? – 51k

+4

SELECT DataId,DataNumber,COUNT(*)c FROM DataTab GROUP BY DataId,DataNumber HAVING c> 1.因爲無論您在分組中使用哪些字段,都應該在select語句中添加它。 –

+0

如果您發現它是根據您的期望/解決您的問題,請按照每個stackoverflow指導方針向上投票。 –