具有多个值的重复检查

时间:2013-05-09 19:21:32

标签: sql sql-server

我正在对我的数据库进行一些手动重复检查,并且情况很复杂。

我需要根据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

我希望这是有道理的。

2 个答案:

答案 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
相关问题