需要使用row_number()从表中删除重复的记录
技术问答
185 人阅读
|
0 人回复
|
2023-09-12
|
我正在进行一个包含以下数据的表测试,我想删除它trsid 124,我的数据库里有数百万个项目,这只是一个计划。概念是从表中删除重复的项目
- ~) j) Q, u& d( `% M--------------------------------------------TrsId | ID | Name |-------------------------------------------- 123 | 1 | ABC | 124 | 1 | ABC |我正在尝试类似的东西9 Y* ]: d, ]; P7 }6 p3 D
delete from testselect T.* from( select ROW_NUMBER() over (partition by ID order by name) as r, Trsid, ID, name from test) twhere r = 2即使我更新查询对我来说没有问题% \" g) o( \8 Z7 \
update test set id=NULLselect T.* from( select ROW_NUMBER() over (partition by ID order by name) as r, Trsid, ID, name from test) twhere r = 2但是,如果我同时运行此查询,它将删除表测试中的所有记录。如果我更新它,更新两个记录。我不知道我在做什么3 S$ d, G0 s1 c* ?6 d8 N$ O
1 U) w8 T# a( b 解决方案: |
|
|
|
|
|