oracle

关注公众号 jb51net

关闭
首页 > 数据库 > oracle > Oracle保留一条重复数据

Oracle数据表保留一条重复数据简单方法

作者:李昊哲小课

最近开发的时候遇到一个任务,需要对重复的数据进行筛选,所以下面这篇文章主要给大家介绍了关于Oracle数据表保留一条重复数据的简单方法,需要的朋友可以参考下

要保留表中的一条重复数据,可以使用以下方法:

DELETE FROM your_table
WHERE ROWID NOT IN (
    SELECT MIN(ROWID)
    FROM your_table
    GROUP BY duplicate_columns
);

其中,your_table是表名,duplicate_columns是用于判断重复数据的列。

DELETE FROM your_table
WHERE ROWID IN (
    SELECT rid
    FROM (
        SELECT ROWID as rid, ROW_NUMBER() OVER (PARTITION BY duplicate_columns ORDER BY ROWID) as rn
        FROM your_table
    )
    WHERE rn > 1
);

其中,your_table是表名,duplicate_columns是用于判断重复数据的列。

需要注意的是,在执行删除操作之前,建议先备份数据,以防误操作导致数据丢失。另外,以上方法适用于删除表中的重复数据,保留一条。如果需要保留多条重复数据,可以根据具体需求进行调整。

row_number() over()函数的主要功能是分组排序,实现类似group by + order by的效果

SELECT
    FI.* 
FROM
    ( SELECT T.*, ROW_NUMBER ( ) OVER ( PARTITION BY T.u_name ORDER BY T.insert_time DESC ) RW FROM user_test T ) FI 
WHERE
    FI.RW =1

总结

到此这篇关于Oracle数据表保留一条重复数据的文章就介绍到这了,更多相关Oracle保留一条重复数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文