假如: 我有一个ORACLE数据库。
其中有个T_Main表
里面有100百万条记录。T_main表的结构是
MainID Number(10) 主键
UserName Vchar2(20)
UserYear char(8)
UserSex char(2)
UserTel char(15)现在t_main表里有很多重复记录,重复记录的定义是MainID不同,但其他字段
都是相同的。
要求把这些重复记录找出来。
关键是速度和效率的问题。求好的思路和算法。可以不光是程序代码的角度,还可以从数据库的角度,从硬件的角度来分析。
up 有分
其中有个T_Main表
里面有100百万条记录。T_main表的结构是
MainID Number(10) 主键
UserName Vchar2(20)
UserYear char(8)
UserSex char(2)
UserTel char(15)现在t_main表里有很多重复记录,重复记录的定义是MainID不同,但其他字段
都是相同的。
要求把这些重复记录找出来。
关键是速度和效率的问题。求好的思路和算法。可以不光是程序代码的角度,还可以从数据库的角度,从硬件的角度来分析。
up 有分
2。用游标
3。建临时表
随便写一下,因为现在在网吧:(select username,useryear,usersex,userTel
from t_main
where MainID not in
(select max(MainID) from t_main
group by username,useryear,usersex,userTel)
有问题请发信息到我的E-mail:[email protected]
Select UserName, UserYear, UserSex, UserSex,UserTel,count(*)
From T_main
group by UserName, UserYear, UserSex, UserSex,UserTel
看看结果,呵呵
其实,这样就可以了
Select UserName, UserYear, UserSex, UserSex,UserTel
From T_main
group by UserName, UserYear, UserSex, UserSex,UserTel