计数重复记录数
问题描述:
我的子报告通过ID列表。每个ID都有一个分配给它的位置。该报告按地点(组#1)分组,然后按ID(组#2)分组。计数重复记录数
在该表中,ID的应该是这样的:
14600
14602
14602
14602
14700
14703
14704
14704
我所需的输出是,因为有2个ID与多个条目。我怎样才能轻松计算出来?
答
听起来就像您正在查找COUNT
和DISTINCT
的组合,并确保有多次出现。你可以通过类似的方法来实现:
SELECT COUNT(DISTINCT id) FROM table_name HAVING COUNT(*) > 1
这将返回表中不同ID的数量。在你的情况下,这是。
答
你可以试试这个:
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;
并不能使其返回5? – heringer
是的,我的坏 - 让自己有点困惑!要获得只有多行发生的**行数,还需要'HAVING count(*)> 1'。我已经更新了我的答案,包括:) –
嗯,好主意,但我认为它仍然需要调整工作。试试这个:select count(*)from(SELECT id FROM table_name group by id HAVING COUNT(*)> 1)ALIAS – heringer