sql 去除重复记录,多字段匹配

2024-12-11 15:49:04
推荐回答(2个)
回答1:

-- 若 id 为 int 数据类型,统计规则 是 去重,取其最小的id
select min(id),a,b,c,d from table_name group by a,b,c,d

-- 方法二:请修改 table_name 表名称 
select * from table_name  where id not in
(
select a.id
from table_name  a  inner join (select a,b,c,d from table_name  group by a,b,c,d having count(*)>1 ) b
on a.a = b.a and a.b=b.b and a.c=b.c and a.d=b.d;
)

回答2:

select * from a1 where id not in(select a1.id from a1 ,(select distinct a,b,c,d from a1) as b where a1.a=b.a and a1.b=b.b and a1.c=b.c and a1.d=b.d);
所有有重复记录的数据被屏蔽