使用SQL删除表中的重复记录

帕苏

所以在这里我需要删除重复的记录。这里的场景是我有5个关键字段。实际数据有4个字段,第5个字段是自动生成的唯一编号。因此,当我仅通过使用这4个字段使用分组检查计数时,我有大约400条记录的重复项。但是这些重复记录的唯一编号有所不同(我们可以删除唯一编号最大的记录)。有没有办法删除这些重复的记录?这些也是6个其他非主键字段,但它们仅供参考。

例如说:

+----------+-------+---------+---------+-----------+
| Field    | Field | Field 3 | Field 4 | Unique,Id |
|   1      |   2   |         |         |           |
+----------+-------+---------+---------+-----------+
| Batman   | 100   | 50      | Chicago | 100       |
+----------+-------+---------+---------+-----------+
| Batman   | 100   | 50      | Chicago | 101       |
+----------+-------+---------+---------+-----------+
| Superman | 50    | 50      | Florida | 102       |
+----------+-------+---------+---------+-----------+
| Flash    | 90    | 40      | London  | 103       |
+----------+-------+---------+---------+-----------+
| Flash    | 90    | 40      | London  | 104       |
+----------+-------+---------+---------+-----------+

在此示例中,前4个字段是实际数据字段。

因此,您可以看到Batman和Flash具有重复的值(前4个字段),但是唯一ID不同。因此,在这里我需要从每个记录中删除一条记录,以使它们不会保留为重复记录。可以删除该重复记录的唯一ID的最大值。因此102和104是Batman和Flash的最大唯一ID值,应将其删除。

请帮我。

mxix

您可以通过CTE做到这一点。

WITH cte as (
select
 ROW_NUMBER() OVER ( PARTITION BY FIELD1 ORDER BY ID) FirstOcurrence,
*
from mySuperHeroTable 
)
delete from cte where FirstOcurrence <> 1

编辑:

我建议您在运行删除操作后在Field1上添加一个Unique约束这样,您就不会再遇到这种情况。

ALTER TABLE mySuperHeroTable ADD CONSTRAINT UQ_mySuperHeroTable_Field1 UNIQUE (Field1);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oracle SQL查询:从表中删除最旧的重复记录

来自分类Dev

使用分组依据从Mysql表中删除重复记录

来自分类Dev

删除SQL中的重复记录

来自分类Dev

如何删除SQL中的重复记录?

来自分类Dev

从SQL Server 2012表中删除具有身份的重复记录

来自分类Dev

Teradata bteq sql 删除表中带有 min(column) 的重复记录

来自分类Dev

需要查找并删除表中的重复记录

来自分类Dev

检查这些记录是否在从属表中后,sql server从表中删除重复记录

来自分类Dev

检查这些记录是否在从属表中后,sql server从表中删除重复记录

来自分类Dev

SQL中的重复记录

来自分类Dev

从 SQL Server 中的视图中删除重复记录

来自分类Dev

sql使用联接时删除重复记录

来自分类Dev

sql使用联接时删除重复记录

来自分类Dev

从 SQL Server 中的表中选择除了重复记录

来自分类Dev

使用多个列在Entity Framework中查找SQL表中的所有重复记录

来自分类Dev

使用XLST从XML文件中删除重复记录

来自分类Dev

使用实体框架在SQL表中查找所有重复记录

来自分类Dev

如何从SQL Server删除重复记录?

来自分类Dev

动态SQL删除重复记录的过程

来自分类Dev

删除重复记录

来自分类Dev

删除 vCard 文件中的重复记录

来自分类Dev

如何使用linq删除重复记录?

来自分类Dev

如何使用linq删除重复记录?

来自分类Dev

从表中查找重复记录,并删除除最近日期以外的所有记录

来自分类Dev

从表中查找重复记录,并删除除最近日期以外的所有记录

来自分类Dev

消除SQL中的重复记录

来自分类Dev

在Oracle SQL中处理重复记录

来自分类Dev

在PL / SQL中检查重复记录

来自分类Dev

合并SQL Server中的重复记录

Related 相关文章

热门标签

归档