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

时间:2013-06-20 18:57:39

标签: sql sql-server tsql

我有一张表:

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 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:3)

试试这个。

SELECT DISTINCT ID, COUNT(*) FROM TABLE_NAME GROUP BY ID HAVING COUNT(*) > 1

答案 2 :(得分:3)

我认为你正在寻找这个:

Select id
from table
group by id
having count(id) > 1

答案 3 :(得分:1)

select totalDuplicatedIds = count(*) 
from (
    select id 
    from table 
    group by id 
    having count(*) > 1
) t