在2列条件下从sql server中删除重复值

cha*_*ish 1 sql t-sql sql-server

|Rownumber  |OldIdassigned  |commoncode  |
------------------------------------------
| 1         |FLEX           |Y2573F102   |
------------------------------------------
| 2         |RCL            |Y2573F102   |
------------------------------------------
| 3         |FLEX           |Y2573F102   |
------------------------------------------
| 4         |QGEN           |N72482123   |
------------------------------------------
| 5         |QGEN           |N72482123   |
------------------------------------------
| 6         |QGEN           |N72482123   |
------------------------------------------
| 7         |RACE           |N72482123   |
------------------------------------------
| 8         |CLB            |N22717107   |
------------------------------------------
| 9         |CLB            |N22717107   |
------------------------------------------
<b>| 10     |CLB            |N22717107   |
Run Code Online (Sandbox Code Playgroud)


我需要根据公共代码和条件删除重复记录 - 如果oldidassigned相同则删除else不删除.

例如Y2573F102有3个重复记录行1,2,3 .... 1,2不需要删除,只有第3行必须删除.

Gor*_*off 5

我为此目的喜欢可更新的CTE和窗口函数:

with todelete as (
      select t.*,
             row_number() over (partition by commoncode order by rownumber) as seqnum
      from t
     )
delete todelete
    where seqnum > 1;
Run Code Online (Sandbox Code Playgroud)