2

我有一张像这样的桌子:

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

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

4

4 回答 4

6

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

SELECT Count(*)
FROM
   (
      SELECT ID
      FROM dbo.YourTable
      GROUP BY ID
      HAVING Count(*) >= 2
   ) X
;

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

于 2013-06-20T19:16:24.037 回答
3

尝试这个。

SELECT DISTINCT ID, COUNT(*) FROM TABLE_NAME GROUP BY ID HAVING COUNT(*) > 1
于 2013-06-20T19:01:06.890 回答
3

我想你正在寻找这个:

Select id
from table
group by id
having count(id) > 1
于 2013-06-20T19:01:15.280 回答
1
select totalDuplicatedIds = count(*) 
from (
    select id 
    from table 
    group by id 
    having count(*) > 1
) t
于 2013-06-20T19:15:37.083 回答