在 SQL 中查找重复计数
Finding duplicate count in SQL
我知道如何通过执行以下操作 return 进行复制:
select cust_name, cust_id, count(*)
from customers
group by cust_name, cust_id
having count(*) > 1;
我想知道是否有办法 return 直接计算 table 中的重复项而不是相关值?
例如,如果上面的查询 returned:
cust_name cust_id count(*)
Fred 22789 2
Jim 45678 3
有没有我可以写的查询,只是 return 这个数字?
所以
count(*)
2
或
count(*)
5
类似的东西。实际上,唯一性可能是 1 到 N 列的组合,上面的例子只显示了 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;
我知道如何通过执行以下操作 return 进行复制:
select cust_name, cust_id, count(*)
from customers
group by cust_name, cust_id
having count(*) > 1;
我想知道是否有办法 return 直接计算 table 中的重复项而不是相关值?
例如,如果上面的查询 returned:
cust_name cust_id count(*)
Fred 22789 2
Jim 45678 3
有没有我可以写的查询,只是 return 这个数字?
所以
count(*)
2
或
count(*)
5
类似的东西。实际上,唯一性可能是 1 到 N 列的组合,上面的例子只显示了 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;