总结子查询中的计数

And*_*dén 2 sql-server duplication group-by

我正在编写一个查询来检查我是否在某个列中有重复项。

SELECT COUNT(thecol) FROM thetable WHERE thecol IS NOT NULL GROUP BY thecol 
  HAVING COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)

这会给我一个输出

3
5
6
Run Code Online (Sandbox Code Playgroud)

这当然是 thecol 不唯一的每个值的记录数。

现在我如何只得到总和 14?我应该将现有查询作为子查询吗?

Eri*_*ing 5

这是你想要的吗?

SELECT SUM(x.records)
FROM 
(
    SELECT COUNT(thecol) AS records
    FROM thetable 
    WHERE thecol IS NOT NULL 
    GROUP BY thecol 
    HAVING COUNT(*) > 1
) AS x
Run Code Online (Sandbox Code Playgroud)