2017-06-14 139 views
0

我的子报告通过ID列表。每个ID都有一个分配给它的位置。该报告按地点(组#1)分组,然后按ID(组#2)分组。计数重复记录数

在该表中,ID的应该是这样的:

14600 
14602 
14602 
14602 
14700 
14703 
14704 
14704 

我所需的输出是,因为有2个ID与多个条目。我怎样才能轻松计算出来?

回答

0

听起来就像您正在查找COUNTDISTINCT的组合,并确保有多次出现。你可以通过类似的方法来实现:

SELECT COUNT(DISTINCT id) FROM table_name HAVING COUNT(*) > 1 

这将返回表中不同ID的数量。在你的情况下,这是。

+1

并不能使其返回5? – heringer

+0

是的,我的坏 - 让自己有点困惑!要获得只有多行发生的**行数,还需要'HAVING count(*)> 1'。我已经更新了我的答案,包括:) –

+0

嗯,好主意,但我认为它仍然需要调整工作。试试这个:select count(*)from(SELECT id FROM table_name group by id HAVING COUNT(*)> 1)ALIAS – heringer

0

你可以试试这个:

DECLARE @temp table(num integer); 

INSERT INTO @temp(num) VALUES (14600), (14602), (14602), (14602), (14700), (14703), (14704), (14704); 

SELECT COUNT(distinct num) repeats 
FROM 
    (SELECT 
     num, count(num) as counts 
     FROM @temp 
     GROUP BY num 
     HAVING COUNT(num) > 1) a;