日期:2014-05-17 浏览次数:20764 次
--测试表创建 create table t_user ( id int, email varchar2(20), status int ) --测试数据插入 insert into t_user( select 1,'aa@gmail.com',1 from dual union all select 2,'aa@gmail.com',1 from dual union all select 3,'aa@gmail.com',2 from dual union all select 4,'yy@gmail.com',1 from dual union all select 5,'yy@gmail.com',2 from dual union all select 6,'zz@gmail.com',2 from dual union all select 7,'zz@gmail.com',3 from dual union all select 8,'zz@gmail.com',4 from dual union all select 2,'aa@gmail.com',1 from dual union all select 4,'yy@gmail.com',1 from dual union all select 6,'zz@gmail.com',2 from dual) --下面是我的处理思路: --1.首先创建一个和原表结构一模一样的表 create table t_user_bak as select *from t_user --2.重复数据的查询,并且复制给复制表(t_user_bak),此时)t_user_bak里面的数据就是t_user去掉重复的数据 insert into t_user_bak select min(id) as id,email,min(status) as status from t_user group by email --子句(select min(id) as id,email,min(status) as status from t_user group by email)查询结果 4 yy@gmail.com 1 6 zz@gmail.com 2 --3.删除t_user所有的数据 --4.把t_user_bak的数据又复制回t_user表 --以上步骤能完成去除表数据重复功能! 1 aa@gmail.com 1