我们在项目中肯定会遇到一种情况
就是表中没有主键 有重复数据
或者有主键 但是部分字段有重复数据
而我们需要过滤掉重复数据
下面是一种解决方法
row_number() over是分析函数 可以获得当前分组的出现次数 如果有重复的就会累加
2,3,4。。。这种,我们删除掉大于1的即可 删除通过rowid来删除
就是表中没有主键 有重复数据
或者有主键 但是部分字段有重复数据
而我们需要过滤掉重复数据
下面是一种解决方法
delete from mytest ms
where rowid in (select aa.rid
from (select rowid as rid,
row_number() over(partition by s.name order by s.id) as nu
from mytest s) aa
where aa.nu > 1)
row_number() over是分析函数 可以获得当前分组的出现次数 如果有重复的就会累加
2,3,4。。。这种,我们删除掉大于1的即可 删除通过rowid来删除
本文介绍了一种使用SQL语句从数据库表中删除重复记录的方法。通过ROW_NUMBER()函数结合子查询,可以有效地找出并移除多余的数据行,确保数据集的唯一性和准确性。
1136

被折叠的 条评论
为什么被折叠?



