我正在对我的数据库进行一些手动重复检查,并且情况很复杂。
我需要根据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不同或唯一的重复项。我已将psuedocode添加到原始查询
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
我希望这是有道理的。
答案 0 :(得分:1)
您只需将 ColumnE 添加到分组中,如下所示:
SELECT ColumnA, ColumnE, COUNT(*) TotalCount
FROM TableA
INNER JOIN TableA_1 on fID = hID
WHERE dateCreated > '2013-05-08 00:00:00'
GROUP BY ColumnA, ColumnE
HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC
答案 1 :(得分:1)
您需要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