With SQL statements, delete duplicates and keep only one
In thousands of records, there are some of the same records, how can you use SQL statements to delete duplicates?
1, look for redundant records in the table, duplicate records are based on a single field (Peopleid) to judge
SELECT * from People
where Peopleid in (select Peopleid from People GROUP by Peopleid has count (Peopleid) > 1)
2, delete redundant records in the table, duplicate records are based on a single field (Peopleid) to judge, leaving only rowid minimal records
Delete from people
where Peoplename in (select Peoplename from People GROUP by Peoplename has count (peoplename) > 1)
and Peopleid not in (select min (peopleid) from people GROUP by Peoplename have Count (peoplename) >1)
3. Find redundant records in the table (multiple fields)
SELECT * FROM Vitae a
where (A.PEOPLEID,A.SEQ) in (select Peopleid,seq from Vitae GROUP by PEOPLEID,SEQ have count (*) > 1)
4, delete redundant records in the table (multiple fields), leaving only the smallest ROWID records
Delete from Vitae a
where (A.PEOPLEID,A.SEQ) in (select Peopleid,seq from Vitae GROUP by PEOPLEID,SEQ have count (*) > 1)
and rowID not in (select min (rowid) from Vitae GROUP by PEOPLEID,SEQ have Count (*) >1)
5, look for redundant records in the table (multiple fields), does not contain the smallest ROWID records
SELECT * FROM Vitae a
where (A.PEOPLEID,A.SEQ) in (select Peopleid,seq from Vitae GROUP by PEOPLEID,SEQ have count (*) > 1)
and rowID not in (select min (rowid) from Vitae GROUP by PEOPLEID,SEQ have Count (*) >1)
6. Remove the first digit to the left of a field:
Update tablename Set [Title]=right [title], (Len ([title]-1)) where Title like ' Village% '
7. Remove the first digit to the right of a field:
Update tablename Set [Title]=left [title], (Len ([title]-1)) where Title like '% Village '
8. Delete Redundant records (multiple fields) in a table without ROWID minimum records
Update vitae set Ispass=-1
where Peopleid in (select Peopleid to Vitae GROUP by Peopleid