`

SQL Server 删除重复记录,只保留一条记录

阅读更多
select * from TABLE where id in (select max(id) id from TABLE where year(time)=2016 and month(time)=4 and day(time)=16 group by node having count(node) > 1) order by click desc


delete from TABLE where id in (select max(id) id from TABLE where year(time)=2016 and month(time)=4 and day(time)=16 group by node having count(node) > 1) order by click desc

 

 

用SQL语句,删除掉重复项只保留一条
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 
select * from people 
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 
delete from people 
where   peopleName in (select peopleName    from people group by peopleName      having count(peopleName) > 1) 
and   peopleId not in (select min(peopleId) from people group by peopleName     having count(peopleName)>1) 

3、查找表中多余的重复记录(多个字段) 
select * from vitae a 
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 
delete from vitae a 
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1) 

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录 
select * from vitae a 
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)   

6.消除一个字段的左边的第一位:

update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'

7.消除一个字段的右边的第一位:

update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'

8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录 
update vitae set ispass=-1
where peopleId in (select peopleId from vitae group by peopleId
 

 

分享到:
评论

相关推荐

    sqlServer删除重复数据

    SQL Server 删除重复数据 SQL Server 删除重复数据是数据库管理中的一项重要任务。...这些方法可以删除重复记录,只保留一条记录。 删除重复数据需要根据实际情况选择合适的方法,才能正确地删除重复记录。

    sqlserver清除完全重复的数据只保留重复数据中的第一条

    在SQL Server中,有时我们需要处理重复数据,确保数据库中只保留每组重复数据的一个实例,通常是最早或最新的记录。在给定的标题和描述中,我们看到一个具体的方法来实现这个目标,即通过创建临时表并利用`identity`...

    SQL语句实现删除重复记录并只保留一条

    本文将详细介绍如何使用SQL语句删除重复记录并仅保留一条。 首先,我们来看一种常见的实现方式,例如在`WeiBoTopics`表中删除重复记录并保留Id最大的一条。以下是一个SQL查询示例: ```sql DELETE FROM ...

    SQL Server删除重复数据的几个方法

    3. **打开游标并遍历**:打开游标后,通过循环遍历每一条具有重复值的记录,逐条删除多余的记录,保留一条原始记录。 ```sql DECLARE @max INT, @id INT; DECLARE cur_rows CURSOR LOCAL FOR SELECT id, COUNT(*) ...

    sql查询重复记录语句

    #### 方法四:保留一条重复记录并删除其余记录 在某些情况下,我们需要保留一组重复记录中的一条,而删除其他重复记录。这可以通过以下SQL语句实现: ```sql DELETE FROM HZT WHERE ID NOT IN (SELECT MAX(ID) ...

    SQL对冗余数据的删除重复记录只保留单条的说明

    本文主要讨论如何在SQL中删除这些重复记录,只保留单条数据。 首先,我们需要理解如何在数据库理论中处理重复数据。在数据结构的线性表概念中,可以通过遍历列表并比较每个元素来消除重复。例如,在给定的Java代码...

    sql 查询重复数据

    如果只想保留一条重复记录,可以使用以下 SQL 语句: ```sql DELETE HZT WHERE ID Not In (SELECT Max(ID) FROM HZT GROUP BY Title); ``` 查找表中多余的重复记录 如果想查找表中多余的重复记录,可以使用...

    sqlserver 删除重复记录处理(转)

    保留一条记录(通常的做法) 大多数情况下,我们需要保留一个记录而删除其他重复项。可以使用以下语句实现: ```sql DELETE FROM HZT WHERE ID NOT IN (SELECT MAX(ID) FROM HZT GROUP BY Title); ``` 这将删除除了...

    分享SQL Server删除重复行的6个方法

    在SQL Server中,删除重复行是一项常见的数据清洗任务,尤其对于保持数据的准确性和一致性至关重要。以下是6种删除重复行的方法: 1. **基于唯一ID字段**:如果表中有一个或多个唯一标识符(如ID),可以使用以下...

    SQL Server2008中删除重复记录的方法分享

    以下是一些在SQL Server 2008中删除重复记录的方法: 1. 常规方法: 这种方法基于子查询,通过找出同一字段(例如`Name`)有多个值的记录,并删除它们。具体的SQL语句如下: ```sql Delete From Employee ...

    如何查出同一张表中字段值重复的记录

    ROWID 是 Oracle 数据库中用于唯一标识表中每一条记录的一种特殊类型。可以通过比较 ROWID 来确定哪些记录是重复的。下面展示一种利用 ROWID 的方法来查找重复记录: ```sql SELECT * FROM table1 a WHERE ROWID !=...

    SQL Server数据库删除数据集中重复数据实例讲解

    然后,我们可以通过删除行号大于1的记录来保留每个组的第一条记录,从而达到删除重复数据的目的: ```sql DELETE A FROM ( SELECT rown = ROW_NUMBER() OVER(PARTITION BY companyName, invoiceNumber, ...

    Delphi自动删除数据库中重复记录..rar

    // 如果主键值相同,表示重复,删除前一条记录 if CurrentRecord = LastRecord then ADataset.Prior.Delete; end; // 移动到下一条记录 ADataset.Next; end; end; ``` 这个示例中的 `RemoveDuplicates` ...

    查询和删除表中重复数据sql语句

    `NOT IN`子句确保仅删除非最小rowid的重复记录,从而保留每个重复组中rowid最小的那条记录。 #### 基于多字段的删除 ```sql DELETE FROM vitae_a WHERE (a.peopleId, a.seq) IN (SELECT peopleId, seq FROM vitae ...

    sqlserver面试题

    这个问题涉及到删除重复记录,但保留每个唯一组合的第一条记录。SQL语句如下: ```sql DELETE tablename WHERE 自动编号 NOT IN (SELECT MIN(自动编号) FROM tablename GROUP BY 学号,姓名,课程编号,课程...

    SqlServer2005中使用row_number()在一个查询中删除重复记录的方法

    然而,需要注意的是,这种方法会删除所有除了每组的第一个记录之外的重复项,因此在实际应用中,根据业务需求,你可能需要调整 `ORDER BY` 子句以确定保留哪条记录。 总结一下,`row_number()` 在删除重复记录中的...

    SQL Server 去重

    使用`SELECT IDENTITY`函数为每一条记录添加一个唯一的标识符,并创建一个新表`#temp1`。 3. 通过子查询找出每个`name`和`tel`组合的最小`autoid`。 4. 删除原表`tele`。 5. 重新创建表`tele`,并通过子查询选择...

    SQL 根据多字段删除重复项,结果返回最大或最小记录.sql

    SQL根据多字段删除重复项,其结果只以ID最新(大)保留一个条记录。超级简单的代码,保证人人都能看懂。删除多条重复的名称,并且保留ID最小的那个。删除重复数据,并且保留最大的ID。

    SqlServer 2005中使用row_number()在一个查询中删除重复记录

    `RowNumber > 1` 的条件会删除除每个分区第一行外的所有行,即保留每组唯一记录的第一条。 最后,使用`SELECT * FROM #temp`查看处理后的结果,确认重复记录已被删除。 这个方法的优点在于,它可以在一个查询中...

Global site tag (gtag.js) - Google Analytics