`
wandejun1012
  • 浏览: 2731288 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sql如何删除部分字段重复的数据

 
阅读更多

思路:找到最大的rowid即可。

 

alter proc getNotDupData
as

--clear temp table
delete ODS.dbo.Agent
delete from stage.dbo.tmpDup
delete from stage.dbo.tmpRowNo
delete from stage.dbo.tmpMaxRowNo
--create dup table
insert into stage.dbo.tmpDup
select distinct AgentLogin,AgentSurName,AgentGivenName   from stage.dbo.dAgentPerformanceStat
where AgentSurname is not null and agentlogin like '3%'  order by AgentLogin

--add rowNo
insert into tmpRowNo
select *,ROW_NUMBER()over(order by AgentLogin) as rowno  from tmpDup 

--get max rowno
insert into  stage.dbo.tmpMaxRowNo
select max(rowno) as 'rowno'   from stage.dbo.tmpRowNo  group by AgentLogin having count(*)>1
这句话是所有去重的精髓啊,哈哈。

--remove max rowno
delete from stage.dbo.tmpRowNo where  rowno in (select * from stage.dbo.tmpMaxRowNo)

--insert into ods
insert into ODS.dbo.Agent select AgentLogin,AgentSurName,AgentGivenName from stage.dbo.tmpRowNo

 

 

 

附上删除另外一个重复的例子,和上面的有点类似,但是用在不同的项目里的,放在这里加深一下印象:

 

select max(id) from T_CUST_CUSTINFO_12 where a627='yc201204-5'  group by a606 having count(*)>1
 

 

 

 

 

 

 

分享到:
评论

相关推荐

    删除表中重复数据sql语句

    - **多字段重复数据查询** ```sql SELECT * FROM vita_ea WHERE (a.peopleId, a.seq) IN ( SELECT peopleId, seq FROM vita_ea GROUP BY peopleId, seq HAVING COUNT(*) > 1 ) ``` 这些查询可以帮助我们...

    sqlServer删除重复数据

    SQL Server 删除重复数据 SQL Server 删除重复数据是数据库管理中的一项重要任务。重复数据可能是完全重复的记录,也可能是部分关键字段重复的记录。删除重复数据可以使用多种方法,包括使用 SELECT DISTINCT 语句...

    sql查询表中某字段下所有重复的记录

    sql查询表中某字段下所有重复的记录,删除某字段下重复记录最小的那笔记录

    MySQL根据某一个或者多个字段查找重复数据的sql语句

    sql 查出一张表中重复...2、查询出所有数据进行分组之后,和重复数据的重复次数的查询数据,先列下: select count(username) as '重复次数',username from xi group by username having count(*)>1 order by userna

    经常面试到的SQL题(查询重复数据和清除重复数据)

    在Oracle或SQL Server等其他数据库系统中,可以使用`MERGE`语句来删除重复数据,或者在创建新表后使用`TRUNCATE`和`RENAME`命令替换原有表。 然而,这种方法可能会遇到问题,比如当表有多个字段时,哪些字段组合...

    查询重复数据sql语句

    本文将详细介绍如何使用SQL语句来查询表中的重复数据,并基于提供的SQL示例进行深入分析。 ### SQL查询重复数据的核心概念 在开始之前,我们需要了解几个关键的概念: 1. **重复数据**:指的是在数据表中存在多条...

    一条SQL清除(单字段、多字段)重复数据的办法.txt

    而对于多字段重复数据,则是基于多个字段的组合值进行判断。 ### SQL清除重复数据的方法 #### 1. 单字段重复数据的清除 对于单字段重复数据的清除,可以使用以下SQL语句: ```sql DELETE FROM table_name WHERE ...

    sql 查询重复数据

    SQL 查询重复数据 在数据库中,查询和处理重复数据是一项常见的任务。本文将详细介绍查询和处理重复数据的方法,包括查找所有重复记录、查找重复...对于部分关键字段重复的记录,可以使用以上提供的 SQL 语句来处理。

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

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

    SQL删除表里的重复数据的两种方法

    ### SQL删除表里重复数据的两种方法 在数据库管理中,数据的一致性和准确性是非常重要的。重复的数据不仅会占用额外的存储空间,还可能导致查询结果的不准确。因此,掌握如何有效地删除表中的重复记录是每个数据库...

    OracleSQL实例-删除重复数据行留最新日期实例.pdf

    在Oracle SQL中,删除重复数据并保留最新日期的实例是一个常见的数据清理任务,尤其是在具有历史记录或事务数据的数据库中。这个实例展示了如何通过SQL查询有效地处理这种情况。在这个例子中,我们有一个名为`abc`的...

    SQL删除重复行

    这种方法适用于表中所有字段都重复的情况,对于部分字段重复的情况,可能需要更复杂的逻辑。 最后,为了避免重复数据的产生,最佳实践是在设计数据库时为关键字段添加唯一索引,这不仅可以防止插入重复数据,还可以...

    数据库按照指定多个字段去重复查询sql语句

    按照指定字段查询出出现重复的数据 SELECT m.* FROM dbo.Sheet1$ m,( SELECT ZCMC,ZCFL,XH FROM dbo.Sheet1$ GROUP BY ZCMC,ZCFL,XH HAVING COUNT(1)>1 ) AS m1 WHERE m.ZCMC=m1.ZCMC AND m.ZCFL=m1.ZCFL ...

    sql_按照某一个字段进行去重后获取全部字段

    根据提供的文件信息,本文将详细解释如何通过 SQL 语句实现按照某一字段去重后获取所有字段的操作。在实际工作中,我们经常会遇到需要对数据表中的记录进行去重的情况,尤其是当某个字段作为唯一标识符时,我们希望...

    删除数据库中重复的数据(只保留一条)

    在数据库管理过程中,经常会遇到需要清理数据的情况,其中一种常见需求就是删除数据库中的重复记录,同时确保每条数据的关键字段只保留一条记录。这种操作在维护数据一致性、提高查询效率等方面具有重要意义。根据...

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

    #### 多字段重复数据查询 ```sql SELECT * FROM vitae_a WHERE (a.peopleId, a.seq) IN (SELECT peopleId, seq FROM vitae GROUP BY peopleId, seq HAVING COUNT(*) > 1); ``` 此语句适用于多字段的重复数据查询,...

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

    ### SQL Server删除重复数据的方法 在数据库管理过程中,经常会遇到需要清理重复数据的情况。重复数据不仅浪费存储空间,还可能导致数据分析结果出现偏差。对于SQL Server而言,有多种方法可以用来删除重复的数据,...

    C# 用SQL自动记录数据并且查询出某一列有哪些重复数据

    本主题聚焦于如何在C#中利用SQL来自动记录数据,并查询出某一列中的重复数据。以下将详细讲解这一过程,以及相关知识点。 首先,我们需要理解C#和SQL的基础。C#是一种面向对象的编程语言,广泛应用于开发Windows...

    sql去掉重复的数据 完全相同的数据去掉重复 及优化

    本文详细介绍了如何使用SQL去除表中的重复数据,并提供了一些性能优化的建议。通过这些方法和技术的应用,可以有效地提高数据质量和数据库系统的整体性能。希望这些知识能够帮助你在实际工作中更加高效地处理数据...

    SQL 查询和删除重复字段数据的方法

    我们可以使用`NOT IN`子句结合`GROUP BY`和`MAX()`函数来删除重复数据。以下是如何实现的: ```sql DELETE FROM YourTable WHERE [id] NOT IN ( SELECT MAX([id]) FROM YourTable GROUP BY (name + value) ) ```...

Global site tag (gtag.js) - Google Analytics