sql查询重复记录、删除重复记录具体方法
本篇文章重点为大家讲解一下sql查询重复记录、删除重复记录具体方法,有需要的小伙伴可以参考一下。
查找所有重复标题的记录:
SELECT *
FROM t_info a
WHERE ((SELECT COUNT(*)
FROM t_info
WHERE Title = a.Title) > 1)
ORDER BY Title DESC
一、查找重复记录
1.查找全部重复记录
Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
2.过滤重复记录(只显示一条)
Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)
注:此处显示ID最大一条记录
二、删除重复记录
1.删除全部重复记录(慎用)
Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
2.保留一条记录
Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)
注:此处保留ID最大一条记录
删除多余的重复记录
1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3.查找表中多余的重复记录(多个字段)
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4.删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5.查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:zbxhhzj@qq.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。 转载本站文章请保留原文链接,如文章内说明不允许转载该文章,请不要转载该文章,谢谢合作。
相关文章
- 2023-01-03:超过5名学生的课。编写一个SQL查询来报告 至少有5个学生 的所有班级,返回结果不限顺序。请问sql语句如何写? +---------+
- SQL查询重复记录详解数据库
- mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法详解数据库
- MySQL动态SQL:实现动态查询的高效方式。(mysql动态sql)
- Oracle分页查询实战: 构建有效的SQL语句(oracle分页sql语句)
- 使用Oracle Hint优化SQL查询(oraclehint)
- MySQL查询:精准搜索SQL语句(mysql查询sql)
- Oracle 日期SQL:超简单查询技巧(oracle日期sql)
- Oracle与SQL的不同之处(oracle和sql区别)
- MySQL使用命令行快速导入SQL文件(mysql导入sql命令)
- SQL Server优化:建立索引提升查询性能(sqlserver建索引)
- Mysql中删除记录的SQL语句(mysql删除sql语句)
- :MySQL移除重复记录的SQL语句方法(mysql删除重复sql)
- Oracle数据表的完整备份:使用SQL.(oracle备份表sql)
- Effortlessly Delete Tables in MySQL with these SQL Commands(mysql删除表sql)
- SQL Server突然未响应,怎么办?(sqlserver未响应)
- SQL Server卡片查询:优化你的查询体验(sqlserver卡查询)
- SQL Server中的关联查询实例研究(sqlserver关联查询实例)
- MySQL SQL监控:保障数据库运行稳定的必备措施(mysql sql 监控)
- MSSQL实现SQL注入防护的完美解决方案(mssql 防sql注入)
- Orcle 解决SQL查询问题的神器(.sql oracle)
- MySQL高级技巧学会用两条SQL拼接查询数据(mysql两条sql拼接)
- 探索Oracle中SQL查询差集的玄机(oracle中sql差集)
- 使用Oracle SQL实现数据表查询(oracle sql查表)
- Oracle SQL妙用提示优化工作效率(oracle sql提示)
- Oracle SQL传参精准实现数据查询(oracle sql传参)
- SQL查询连续号码段的巧妙解法
- Sql学习第四天——SQL关于withcube,withrollup和grouping解释及演示