我已在表中插入一些值
DataTab
。 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
SELECT DataId, COUNT(*) c FROM DataTab GROUP BY DataId HAVING c > 1;
我已经在我的应用程序中使用了它。它正在根据您的查询运行
SELECT a.*
FROM CENTERDETAILS a
JOIN
(SELECT IPADDR, MACID, COUNT(*)
FROM CENTERDETAILS
GROUP BY IPADDR, MACID
HAVING count(*) > 1
) b ON a.IPADDR = b.IPADDR OR a.MACID = b.mac
ORDER BY a.MACID
我尝试将我在OP中读到的原始方法转换为可行的方法,并且与
GROUP BY
和HAVING
的组合相比,相当容易记住。
SELECT *
FROM DataTab a
JOIN DataTab b ON
a.DataId = b.DataId
WHERE
a.SomeId <> b.SomeId
虽然它可能比 Jwalin Shah 的答案效率低。