查找重复数据
2011-04-15 18:40
120 查看
create table AAAA
(
NAME VARCHAR2(10),
SEX VARCHAR2(10),
AGE VARCHAR2(10)
);
insert into AAAA(name,sex,age) values('1','1','1');
insert into AAAA(name,sex,age) values('2','2','2');
insert into AAAA(name,sex,age) values('2','2','2');
insert into AAAA(name,sex,age) values('3','3','3');
--查找重复行:
select *
from AAAA a
where (a.NAME, a.SEX, a.AGE) in
(select NAME, SEX, AGE
from AAAA
group by NAME, SEX, AGE
having count(1) > 1);
--1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from AAAA
where NAME in (select NAME from AAAA group by NAME having count(NAME) > 1);
--2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from AAAA
where NAME in (select NAME from AAAA group by NAME having count(NAME) > 1)
and rowid not in (select min(rowid) from AAAA group by NAME having count(NAME )>1);
--3、查找表中多余的重复记录(多个字段)
select * from AAAA a
where (a.NAME,a.SEX) in (select NAME,SEX from AAAA group by NAME,SEX having count(*) > 1);
--4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from AAAA a
where (a.NAME,a.SEX) in (select NAME,SEX from AAAA group by NAME,SEX having count(*) > 1)
and rowid not in (select min(rowid) from AAAA group by NAME,SEX having count(*)>1);
--5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from AAAA a
where (a.NAME,a.SEX) in (select NAME,SEX from AAAA group by NAME,SEX having count(*) > 1)
and rowid not in (select min(rowid) from AAAA group by NAME,SEX having count(*)>1);
(
NAME VARCHAR2(10),
SEX VARCHAR2(10),
AGE VARCHAR2(10)
);
insert into AAAA(name,sex,age) values('1','1','1');
insert into AAAA(name,sex,age) values('2','2','2');
insert into AAAA(name,sex,age) values('2','2','2');
insert into AAAA(name,sex,age) values('3','3','3');
--查找重复行:
select *
from AAAA a
where (a.NAME, a.SEX, a.AGE) in
(select NAME, SEX, AGE
from AAAA
group by NAME, SEX, AGE
having count(1) > 1);
--1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from AAAA
where NAME in (select NAME from AAAA group by NAME having count(NAME) > 1);
--2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from AAAA
where NAME in (select NAME from AAAA group by NAME having count(NAME) > 1)
and rowid not in (select min(rowid) from AAAA group by NAME having count(NAME )>1);
--3、查找表中多余的重复记录(多个字段)
select * from AAAA a
where (a.NAME,a.SEX) in (select NAME,SEX from AAAA group by NAME,SEX having count(*) > 1);
--4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from AAAA a
where (a.NAME,a.SEX) in (select NAME,SEX from AAAA group by NAME,SEX having count(*) > 1)
and rowid not in (select min(rowid) from AAAA group by NAME,SEX having count(*)>1);
--5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from AAAA a
where (a.NAME,a.SEX) in (select NAME,SEX from AAAA group by NAME,SEX having count(*) > 1)
and rowid not in (select min(rowid) from AAAA group by NAME,SEX having count(*)>1);
相关文章推荐
- 查找重复数据sql
- PHPCMS v9 查找重复数据
- 查找表里重复的数据
- Java查找重复数据
- 如何在 Excel 中通过比较两列中的数据来查找重复项
- 使用exception来查找重复的数据
- 算法:查找int数组中重复的数据
- ORACLE—011:查找重复行数据
- Excel电子表格中如何做数据查找,重复数据删除,标记重复数据
- sql不重复的查找统计数据(经典)
- Mysql中查找并删除重复数据的方法
- 查找字符串中重复出现的数据
- 大数据:查找不重复的整数
- 删除数据库中的重复数据记录、查找重复记录、查找不重复记录
- 使用aggregate在MongoDB中查找重复的数据记录
- 查找重复数据
- MySQL根据某一个或者多个字段查找重复数据
- java.util.Collections类使用,查找集合中重复数据
- SQL查找 删除重复数据只保留一条
- Excel 怎么用 vlookup 来查找两个表的重复数据?!