SQL:至少出现两次的元素数

Edg*_*rby 2 sql t-sql sql-server

我有一张像:

ID    DATE
01    20.06.13
01    21.06.13
02    13.04.13
03    12.05.13
04    17.05.13
04    19.06.13
Run Code Online (Sandbox Code Playgroud)

我需要查询以便我拥有在 DATE 字段中有两个或多个条目的不同 ID 的总数。例如,在示例表中,只有 01 和 04 至少有两个条目,因此我的查询结果应该是 2。

Eri*_*ikE 6

由于您的要求是唯一重复项的总数,而不是列出重复项本身,因此这里是执行此操作的查询:

SELECT Count(*)
FROM
   (
      SELECT ID
      FROM dbo.YourTable
      GROUP BY ID
      HAVING Count(*) >= 2
   ) X
;
Run Code Online (Sandbox Code Playgroud)

您也可以使用某种JOIN(包括子查询,无论是否相关),但这将远低于上述聚合的效率。