1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from peoplewhere 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 awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having
扩展资料
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。
例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:
SELECTusername,citytable.cityid
FROMusertable,citytable
WHEREusertable.cityid=citytable.cityid
在FROM子句中可用以下两种格式为表或视图指定别名:
表名 as 别名
表名 别名
参考资料:百度百科 SELECT语句
如果每组1000多万个数据的话,上亿个数据内存 能不能受得了都是个问题,你的意思是你需要从A.txt文件中读取数据把重复的数据去除掉,然后把BCDEFG文件里面的和A文件里面重复的也从A里面去掉对么?这样,需要的内存很多,数据放在硬盘筛选比较好,可以考虑用数据库,用buf流读取数据把数据写进数据库主键,让主键去筛选出重复的,考虑到速度的问题,这个时候如果除去后的A数据,内存已经可以支持了,把筛选好的数据放入集合,冲bcdef文件里面用buf流一个个的读出来比较后移除就行了,如果内存还是不够,把bcdef文件的数据当做数据库删除的条件,一个个的删除,最后删除完后的所有主键,就是你想要的结果,把结果输出到文本就行了用LINQ, a对b做差集,b对a做差集,两次的结果都是空集合则说明两个集合完全相同,这是最简单的办法,只要一句话就能搞定.类似这样:(手写,不一定正确)a.Except(b).Count()==0&&b.Except(a).Count()==0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)