删除重复数据,重复数据
delete from cbe_subscriber awhere rowid !=(select max(rowid)
from cbe_subscriber b
where a.SUBSCRIBERKEY=b.SUBSCRIBERKEY
and a.APPLYTIME=b.APPLYTIME);
我的已经试过了,【行】。
删除相同行(除主键外,其它属性值相同的行),举个例子给你看看吧。
delete from dept a where a.deptno<>
(
select min(deptno) from dept t group by(dname,loc)
having count(*)>1 and a.dname=t.dname and a.loc=t.loc
);
其中,dept的主键是deptno,针对(dname,loc)这两个属性值相同的行,把重复的删除,留下deptno值最小的那一行。
---------------------------------------
你的表主键是user_id吧,重复的属性值是(company_id,fee_date,insure_id)吧,
你的可以改成以下:
delete from t_insure_feed a where a.user_id<>
(
select min(user_id) from t_insure_feed t group by(company_id,fee_date,insure_id)
having count(*)>1 and a.company_id=t.company_id and a.fee_date=t.fee_date and a.insure_id=t.insure_id
);
========================
你建的表没有主键?也许你的表没。直接试一下第3条吧。不给我红旗就不跟你玩了。
3.可以新创建一张表,该表装载没有重复的行
create table mytemp as
select user_id,company_id,fee_date,insure_id /*列出所有的列*/ from t_insure_feed group by(user_id,company_id,fee_date,insure_id /*列出所有的列*/);
查询:select * from mytemp;
======================
1.查询重复(usr_id)的行:
select user_id from t_insure_feed group by user_id having count(*)>1;
2.全部删除重复的行!(一个都不剩下)
delete from t_insure_feed where user_id in (select user_id from t_insure_feed group by user_id having count(*)>1);
提示:用rollback可以恢复。
不知你用的是OFFICES2007以上的版本吗?如果是的话,选中全部单元格—使用条件格式—突出显示单元格规则—重复值—设置为:这边选择自定义—填充—选择一种颜色,然后确定,这时候有重复的选项就会被填充成你设置的颜色。接着使用EXCEL的数据—筛选,如果是2007版本的话,在筛选的下拉选项中会看到一个“按颜色筛选”的选项,就选择你刚才填充的颜色,然后,筛选完,就可以删除了。