SQL:删除重复项
发布时间:2020-12-12 16:21:51 所属栏目:MsSql教程 来源:网络整理
导读:如何从以下列方式设置的表中删除重复项? unique_ID | worker_ID | date | type_ID 一个worker可以有多个与它们相关联的type_ID,我想删除任何重复的类型.如果有重复,我想删除具有最新条目的类型. 解决方法 窗函数row_number()的教科书候选: ;WITH x AS ( SEL
如何从以下列方式设置的表中删除重复项?
unique_ID | worker_ID | date | type_ID 一个worker可以有多个与它们相关联的type_ID,我想删除任何重复的类型.如果有重复,我想删除具有最新条目的类型. 解决方法窗函数row_number()的教科书候选:;WITH x AS ( SELECT unique_ID,row_number() OVER (PARTITION BY worker_ID,type_ID ORDER BY date) AS rn FROM tbl ) DELETE FROM tbl FROM x WHERE tbl.unique_ID = x.unique_ID AND x.rn > 1 这也解决了(worker_ID,type_ID)上的一组欺骗共享相同日期的情况. 使用更简单的版本更新 事实证明,这可以简化:在SQL Server中,您可以直接从CTE中删除: ;WITH x AS ( SELECT unique_ID,type_ID ORDER BY date) AS rn FROM tbl ) DELETE x WHERE rn > 1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |