首页 > 解决方案 > 识别重复记录并插入另一个表

问题描述

我有一个这样的表,里面有重复的记录所以我的要求是识别重复的记录并存储到另一个表中,即 Customer_duplicate
和不同的记录到一个表中

现有查询:

Create proc usp_store_duplicate_into_table 
as 
begin 
    insert into Customer_Duplicate 
    select * 
    from Customer C 
    group by cid 
    having count(cid) > 1                                   

标签: sqlsql-server

解决方案


您所拥有的一切都很好,只是您无法选择不在您的分组依据中的项目;例如,你可以这样做:

insert into Customer_Duplicate 
select cid, count(*)
from Customer C 
group by cid 
having count(cid) > 1 

取决于Customer_Duplicate看起来像什么。如果您确实需要包含所有行,那么这样的事情可能对您有用:

insert into Customer_Duplicate 
select *
from customer c
where c.cid in
(
    select cid
    from Customer
    group by cid 
    having count(cid) > 1
)

推荐阅读