2014-02-24 93 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指导方针向上投票。 –