我有一张像这样的桌子:
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。
我有一张像这样的桌子:
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。
由于您的要求是唯一重复项的总数,而不是列出重复项本身,因此这里是执行此操作的查询:
SELECT Count(*)
FROM
(
SELECT ID
FROM dbo.YourTable
GROUP BY ID
HAVING Count(*) >= 2
) X
;
您也可以使用某种JOIN
(包括相关或不相关的子查询),但这将远低于上述聚合的效率。
尝试这个。
SELECT DISTINCT ID, COUNT(*) FROM TABLE_NAME GROUP BY ID HAVING COUNT(*) > 1
我想你正在寻找这个:
Select id
from table
group by id
having count(id) > 1
select totalDuplicatedIds = count(*)
from (
select id
from table
group by id
having count(*) > 1
) t