首页 游戏 软件 资讯 排行榜 专题
首页
数据库
sqlserverCTE删除重复数据的实现方法

sqlserverCTE删除重复数据的实现方法

热心网友
52
转载
2026-04-19

SQL Server 使用 CTE 高效删除重复数据

实现删除重复数据并保留一条记录

处理数据库中的重复记录,核心目标是在识别出重复项后,为每组保留唯一的一条数据。利用 SQL Server 的 CTE(公用表表达式)可以清晰、高效地完成这一任务,具体操作可分为三个步骤:

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

  • 首先,使用ROW_NUMBER()窗口函数作为“编号工具”。它的作用是为表中的每一行数据分配一个序号,关键点在于按照您指定的重复判定列(例如设备编号和发送日期)进行分组排序。
  • 接着,通过CTE创建一个临时的、可重用的结果集。这相当于建立了一个清晰的数据操作视图,便于后续处理。
  • 最后,执行删除命令:仅保留每组中序号为1的原始记录,而将组内序号大于1的所有重复行安全移除。
WITH CTE AS (
SELECT
IOT_TerminalNo,
SendDate,
EVoltage,
ECurrent,
CreateTime,
ROW_NUMBER() OVER ( PARTITION BY IOT_TerminalNo, SendDate ORDER BY (SELECT 0) ) AS rn
FROM
Equipment_1001
where
--IOT_TerminalNo='Weldjoin-000001' AND
SendDate >='2025-04-01 00:00:00.000'
AND SendDate<'2025-07-07 13:26:32.830'
)
DELETE FROM CTE WHERE rn > 1;
  • PARTITION BY:此子句定义了数据分组的依据,即指定哪些字段组合用于判断数据是否重复。
  • rn > 1:这个条件是执行数据清洗的筛选器,它会精准删除所有重复项,确保最终每组数据只留下第一条。

SQL Server 删除完全重复数据并保留一条

应用场景与前提

在数据库实际运维过程中,有时会遇到一种更特殊的情况:SQL Server 数据表中虽然定义了主键,但表中却存在多条所有字段值都完全一致的记录——包括主键字段本身。此时,若直接按主键执行删除操作,可能导致所有重复行被一并删除,造成数据丢失。因此,需要一种更安全的去重方法。

实现删除完全重复数据并保留一条

应对这种主键重复的复杂场景,上述基于 CTE 和窗口函数的方案依然是最佳实践。其操作流程保持一致:

  1. 利用ROW_NUMBER()函数,为这些完全相同的“克隆”记录在组内进行编号。
  2. 通过CTE构建一个临时的、结构化的数据视图,方便操作。
  3. 执行删除语句,安全移除组内编号大于1的所有冗余副本。
WITH CTE AS (
SELECT
## 字段
code,
timePoint,
ROW_NUMBER() OVER ( PARTITION BY code, TimePoint ORDER BY (SELECT 0) ) AS rn
FROM table_name
)
DELETE FROM CTE WHERE rn > 1;

关键步骤解析

  • PARTITION BY:这是精准定位重复组的关键。通过它来定义重复数据的判断标准,在本例中,即codeTimePoint两个字段值均相同的记录被视为一组。
  • rn > 1:这是执行最终删除操作的判断条件。它确保了无论一组内存在多少条完全相同的记录,最终都只保留最先被编号的那一条,从而实现安全、无损的数据去重。
来源:https://www.jb51.net/database/345052f68.htm
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

iPhone16之间如何快速传输App?详细步骤解析
iphone
iPhone16之间如何快速传输App?详细步骤解析

通过AirDrop功能,可在iPhone16之间快速传输已安装的App,无需重新下载。 省去重新下载的等待,直接在两部iPhone 16之间“搬运”已经安装好的App——这个用AirDrop传App的功能,确实方便。不过,想顺利操作,有几个关键前提得先摆正。 准备工作与条件确认 开始之前,最好花一分

热心网友
04.22
iPhone17设备名称怎么修改?详细步骤教程
iphone
iPhone17设备名称怎么修改?详细步骤教程

修改iPhone17设备名称的核心步骤 想给你的iPhone17换个独具特色的名字吗?其实很简单,整个操作的核心路径就在「设置」>「通用」>「关于本机」>「名称」里,几步就能完成自定义。 为什么要修改iPhone17的设备名称? 给iPhone17改个名,可不仅仅是图个新鲜。它在蓝牙配对、使用Air

热心网友
04.22
iPhone14隐藏ID怎么解除?详细步骤与注意事项
iphone
iPhone14隐藏ID怎么解除?详细步骤与注意事项

解除iPhone14隐藏ID的核心方法是联系原机主或提供购买凭证,通过官方渠道重置Apple ID 手里突然多出一台被锁的iPhone 14,用起来处处受限,这事儿确实头疼。好消息是,只要遵循官方路径,问题基本都能解决。关键在于,你得有耐心走完正规流程。 什么是iPhone隐藏ID? 简单来说,iP

热心网友
04.22
怎么查找我的iPhone17位置?
iphone
怎么查找我的iPhone17位置?

通过“查找”应用或iCloud网站,登录Apple ID即可实时定位iPhone 17,即使设备离线也能显示最后已知位置。 使用“查找”应用定位iPhone 17 如果你手边还有别的苹果设备,比如iPad或者Mac,最省事的方法就是直接用上面的“查找”应用。打开应用,登录和iPhone 17同一个

热心网友
04.22
iPhone 16通知权限设置与微信提示音修复指南
iphone
iPhone 16通知权限设置与微信提示音修复指南

iPhone 16通知权限设置与微信提示音修复指南 微信消息突然“静音”了?先别急着怀疑手机坏了。在iPhone 16上,通知体系和声音管理比以往更精细,有时只是某个开关没到位。接下来,咱们就把系统通知中心、应用权限、勿扰模式这几个关键环节捋清楚,帮你快速找回失联的提示音,避免错过重要信息。 iPh

热心网友
04.22