我知道如何通过执行以下操作返回重复项:
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列。
答案 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;