sql 删除表中多余的重复记录(多个字段),只保留一条记录
2013-01-24 17:01
621 查看
SELECT * into PT_PROGRAM_TAG0
FROM [IAR_DB].[dbo].[PT_PROGRAM_TAG]
with aa
as(
select count(*) as c from PT_PROGRAM_TAG0 group by PROGRAMID,TagID,TypeID having count(*) > 1
)
select SUM(c) from aa
with b as(select PROGRAMID,TagID,TypeID,MIN(id) as minid from PT_PROGRAM_TAG group by PROGRAMID,TagID,TypeID having count(*) > 1)
delete [PT_PROGRAM_TAG] where ID in(
select a.id from PT_PROGRAM_TAG a
where exists(select PROGRAMID,TagID,TypeID from b where PROGRAMID=a.PROGRAMID and TagID=a.TagID and TypeID=a.TypeID and a.id<>b.minid )
)
FROM [IAR_DB].[dbo].[PT_PROGRAM_TAG]
with aa
as(
select count(*) as c from PT_PROGRAM_TAG0 group by PROGRAMID,TagID,TypeID having count(*) > 1
)
select SUM(c) from aa
with b as(select PROGRAMID,TagID,TypeID,MIN(id) as minid from PT_PROGRAM_TAG group by PROGRAMID,TagID,TypeID having count(*) > 1)
delete [PT_PROGRAM_TAG] where ID in(
select a.id from PT_PROGRAM_TAG a
where exists(select PROGRAMID,TagID,TypeID from b where PROGRAMID=a.PROGRAMID and TagID=a.TagID and TypeID=a.TypeID and a.id<>b.minid )
)
相关文章推荐
- sql 删除表中多余的重复记录(多个字段),只保留一条记录
- sql 删除表中多余的重复记录(多个字段),只保留一条记录
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- SQL删除某些字段重复的记录(只保留一条)
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- 【转】SQL删除某些字段重复的记录(只保留一条)
- 如何使用SQL删除某个字段重复的记录,保留其中一条
- sql 多个字段分组,删除重复记录,保留ID最小的一条
- SQL删除某些字段重复的记录(只保留一条)
- SQL 删除重复记录,并保留其中一条
- sql删除表中重复记录只保留一条记录
- Sql server 删除重复记录的SQL语句保留一条
- SQL语句实现删除重复记录并只保留一条
- SqlServer-删除某一个字段重复的记录,只保留一条
- mysql,oracle里删除重复记录,只保留一条(除了自增长字段,其他的字段完全相同为相同记录)
- SQL 删除重复的数据(多个字段判断),只保留一条数据
- sql 查询某个字段值相同及其删除多余值保留不重复那个
- SQL删除表中的重复记录(多个字段),只留一条。
- ORACLE 删除重复行,保留一条记录SQL
- SQL删除重复记录,只保留一条数据。