回答

收藏

需要使用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    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则