sqlserverCTE删除重复数据的实现方法
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 和窗口函数的方案依然是最佳实践。其操作流程保持一致:
- 利用
ROW_NUMBER()函数,为这些完全相同的“克隆”记录在组内进行编号。 - 通过
CTE构建一个临时的、结构化的数据视图,方便操作。 - 执行删除语句,安全移除组内编号大于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:这是精准定位重复组的关键。通过它来定义重复数据的判断标准,在本例中,即code和TimePoint两个字段值均相同的记录被视为一组。rn > 1:这是执行最终删除操作的判断条件。它确保了无论一组内存在多少条完全相同的记录,最终都只保留最先被编号的那一条,从而实现安全、无损的数据去重。
热门专题
热门推荐
通过AirDrop功能,可在iPhone16之间快速传输已安装的App,无需重新下载。 省去重新下载的等待,直接在两部iPhone 16之间“搬运”已经安装好的App——这个用AirDrop传App的功能,确实方便。不过,想顺利操作,有几个关键前提得先摆正。 准备工作与条件确认 开始之前,最好花一分
修改iPhone17设备名称的核心步骤 想给你的iPhone17换个独具特色的名字吗?其实很简单,整个操作的核心路径就在「设置」>「通用」>「关于本机」>「名称」里,几步就能完成自定义。 为什么要修改iPhone17的设备名称? 给iPhone17改个名,可不仅仅是图个新鲜。它在蓝牙配对、使用Air
解除iPhone14隐藏ID的核心方法是联系原机主或提供购买凭证,通过官方渠道重置Apple ID 手里突然多出一台被锁的iPhone 14,用起来处处受限,这事儿确实头疼。好消息是,只要遵循官方路径,问题基本都能解决。关键在于,你得有耐心走完正规流程。 什么是iPhone隐藏ID? 简单来说,iP
通过“查找”应用或iCloud网站,登录Apple ID即可实时定位iPhone 17,即使设备离线也能显示最后已知位置。 使用“查找”应用定位iPhone 17 如果你手边还有别的苹果设备,比如iPad或者Mac,最省事的方法就是直接用上面的“查找”应用。打开应用,登录和iPhone 17同一个
iPhone 16通知权限设置与微信提示音修复指南 微信消息突然“静音”了?先别急着怀疑手机坏了。在iPhone 16上,通知体系和声音管理比以往更精细,有时只是某个开关没到位。接下来,咱们就把系统通知中心、应用权限、勿扰模式这几个关键环节捋清楚,帮你快速找回失联的提示音,避免错过重要信息。 iPh





