在SQL中查找重复计数

时间:2019-03-21 21:29:06

标签: sql duplicates ansi-sql

我知道如何通过执行以下操作返回重复项:

select cust_name, cust_id, count(*)
from customers
group by cust_name, cust_id
having count(*) > 1;

我想知道是否有一种方法可以返回表中直接的重复项计数,而不是相关值?

例如,如果以上查询返回:

cust_name   cust_id count(*)
Fred        22789      2
Jim         45678      3

我是否可以写一个仅返回数字的查询?

所以

count(*)
   2

count(*)
   5

类似的东西。实际上,唯一性可以是1到N列的组合,上面的示例仅显示了2列。

1 个答案:

答案 0 :(得分:2)

您将使用子查询:

select count(*) as num_with_duplicates,
       sum(cnt) as total_duplicate_count
from (select cust_name, cust_id, count(*) as cnt
      from customers
      group by cust_name, cust_id
      having count(*) > 1
     ) cc;