计算重复行数

时间:2014-09-02 13:06:42

标签: sql-server

我很困惑为什么那些查询返回不同数量的记录,请注意XXX表只包含三列A,B,C

查询1)

SELECT SUM (Counts) FROM 
    (
        SELECT Count(*) Counts FROM dbo.XXX 
              GROUP BY A,B,C
              HAVING COUNT(*) = 1
    ) T

查询2)

SELECT A, B, C
  FROM [dbo].XXX
  GROUP BY A,B,C

2 个答案:

答案 0 :(得分:3)

也许是因为您的第一个查询只是对按组计数完全等于1的组进行求和。第二个查询将返回所有计数,无论计数组是一个还是多个。

因此,A,B和C的组合可能不止一次出现。如果是这种情况,那么您的计数就不会相同。

答案 1 :(得分:0)

查询1正在计算A,B和A的记录数。 C在表中是独一无二的。

查询2为您提供A,B和B的独特组合。表中的C.

相关问题