欢迎投稿

今日深度:

Oracle去重4种实现方式小结,

Oracle去重4种实现方式小结,


目录
  • 去重
    • 1.distinct去重
    • 2.group by 去重
    • 3.rowid(伪列去重)如果 step_id 也要要求去重就把条件加上去,如果不需要去重则不加
    • 4.窗口函数row_number () over() 去重  如果 step_id 也要要求去重就把条件加上去,如果不需要去重则不加
  • 总结

    去重

    1.distinct去重

    select distinct name,age from test

    2.group by 去重

    select name,age from test group by name,age;

    3.rowid(伪列去重)如果 step_id 也要要求去重就把条件加上去,如果不需要去重则不加

    select sfc_no,step_id from AAA_HC t1
    where t1.rowid in (select min(rowid) from AAA_HC t2 where t1.sfc_no=t2.sfc_no
    --and t1.step_id=t2.step_id
    );

    4.窗口函数row_number () over() 去重  如果 step_id 也要要求去重就把条件加上去,如果不需要去重则不加

    select t.sfc_no ,t.step_id from
    (select row_number() over(partition by sfc_no
    --,step_id
    order by step_id) rank,AAA_HC.* from AAA_HC)t
    where t.rank = 1;

    row_number()  over(partition by SFC_NO order by CREATE_DATE desc) rn

    为新增一个名为rn的排名的列,partition by 列名(需要分组的列) order by 列名(需要排名的列)
    结果

    SFC_NO    CREATE_DATE   rn
    aaa          2022-09-22        1
    aaa          2022-09-21        2
    aaa          2022-09-20        3
    bbb          2022-09-22        1
    bbb          2022-09-21        2
    bbb          2022-09-20        3

    总结

    到此这篇关于Oracle去重4种实现方式的文章就介绍到这了,更多相关Oracle去重方式内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!

    您可能感兴趣的文章:
    • oracle sql 去重复记录不用distinct如何实现
    • Oracle表中重复数据去重的方法实例详解
    • Oracle删除重复的数据,Oracle数据去重复
    • Oracle listagg去重distinct的三种方式总结

    www.htsjk.Com true http://www.htsjk.com/oracle/47595.html NewsArticle Oracle去重4种实现方式小结, 目录 去重 1.distinct去重 2.group by 去重 3.rowid(伪列去重)如果 step_id 也要要求去重就把条件加上去,如果不需要去重则不加 4.窗口函数row_number () over() 去重...
    评论暂时关闭