我正在对我的数据库进行一些手动重复检查,并且有一个复杂的情况。
我需要根据 A 列中的值检查重复行,我已经这样做了。但是,在这种特定情况下,可能有多个记录的 A 列值相同,但 E 列值不同。
这是我原来的查询:
SELECT ColumnA, COUNT(*) TotalCount
FROM TableA
INNER JOIN TableA_1 on fID = hID
WHERE dateCreated > '2013-05-08 00:00:00'
GROUP BY ColumnA
HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC
我现在需要过滤掉 ColumnA 的重复项,其中 ColumnE 不同或唯一。我已将伪代码添加到原始查询中
SELECT ColumnA, COUNT(*) TotalCount
FROM TableA
INNER JOIN TableA_1 on fID = hID
WHERE dateCreated > '2013-05-08 00:00:00'
AND ColumnE is not unique
GROUP BY ColumnA
HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC
我希望这是有道理的。
最佳答案
您需要在 ColumnA 列上使用 GROUP BY 子句,在 DISTINCT ColumnE 上使用 HAVING 子句
SELECT ColumnA, COUNT(*) TotalCount
FROM TableA INNER JOIN TableA_1 on fID = hID
WHERE dateCreated > '2013-05-08 00:00:00'
GROUP BY ColumnA
HAVING COUNT(DISTINCT ColumnE) > 1
ORDER BY COUNT(*) DESC
关于sql - 具有多个值的重复检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16469511/