sql删除数据库中重复的数据语句怎么写?

数据库中有大量重复的数据,只是存入的数据时间上不同,根据数据的名称title去删除重复的数据该怎么写?不能删除旧有的数据,只删除新增的数据

你要先找到规律,并且有确定的限制条件。是否所有的重复数据都删了只留一条?旧数据和新数据的界定是什么?是某个时刻?那旧数据中有重复数据删不删?重复数据是指仅仅title字段信息一样?

如果是在工作上,删除数据是一项很严谨的事,这个你必须要想清楚所有的条件情况,只是这样几句话,让网友给个sql语句,直接用上去,害的是你自己。

也不知道你的数据库具体是怎么样的,给个一般删除重复数据的方法
select distinct * into #Tmp_aa from tableName 把不重复的找出来插入到临时表
drop table tableName 删掉原来的表
select * into tableName from #Tmp_aa 把临时表插入到新建的tableName
drop table #Tmp_aa 删掉临时表
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-21
第一,查询出你需要删除的的数据时间段
第二,删除
这就是个嵌套语句。
第2个回答  推荐于2017-10-04
create table zhidao1021_tab1
(dt date,col1 number,col2 number,col3 number);
insert into zhidao1021_tab1
select to_date('20131010','yyyymmdd'),1,2,3 from dual
union all
select to_date('20131011','yyyymmdd'),1,2,3 from dual
union all
select to_date('20131011','yyyymmdd'),1,3,3 from dual
union all
select to_date('20131011','yyyymmdd'),1,4,3 from dual;
commit;

select * from zhidao1021_tab1;
--语句:
delete from zhidao1021_tab1 where (col1,col2,col3) in (select col1,col2,col3 
from zhidao1021_tab1 group by col1,col2,col3 having(count(1))>1)
and dt in (select max(dt) from zhidao1021_tab1 group by col1,col2,col3);

select * from zhidao1021_tab1;

本回答被提问者采纳
相似回答