Oracle去重4种实现方式小结

 更新时间:2023年09月10日 09:07:19   作者:風F  
这篇文章主要给大家介绍了关于Oracle去重4种实现方式的相关资料,在Oracle数据库中有时候我们需要查询多个列并去除重复值,文中通过代码介绍的非常详细,需要的朋友可以参考下

去重

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去重方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 分享ORACLE SEQUENCE跳号总结

    分享ORACLE SEQUENCE跳号总结

    在ORACLE数据库中,序列(SEQUENCE)是使用非常频繁的一个数据库对象,但是有时候会遇到序列(SEQUECNE)跳号(skip sequence numbers)的情形,那么在哪些情形下会遇到跳号呢,下面通过本文给大家详解介绍,一起看看吧
    2017-09-09
  • Oracle中Union与Union All的区别(适用多个数据库)

    Oracle中Union与Union All的区别(适用多个数据库)

    如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来
    2012-07-07
  • LINUX下Oracle数据导入导出的方法详解

    LINUX下Oracle数据导入导出的方法详解

    这篇文章主要介绍了LINUX下Oracle数据导入导出的方法,较为详细的分析导出工具exp及导入工具imp的具体使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • oracle中add_months()函数及用法总结

    oracle中add_months()函数及用法总结

    这篇文章主要介绍了oracle中add_months()函数及用法总结,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • oracle跨库查询dblink的用法实例详解

    oracle跨库查询dblink的用法实例详解

    这篇文章主要介绍了oracle跨库查询dblink的用法,结合实例形式较为详细的分析了Oracle中跨库查询dblink的创建、使用及删除等相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • 解决ORA-12154 TNS无法解析指定的连接标识符问题

    解决ORA-12154 TNS无法解析指定的连接标识符问题

    Oracle11g server 64bit服务器端安装在Windows Server2008 Enterprise上,安装Oracle11g client 32bit,通过SQL Plus以sysdba身份连接数据库,并且创建表空间、用户、授权成功,在连接数据库时出现问题,下面讲解ORA-12154无法解析指定的连接标识符问题,感兴趣的朋友一起看看
    2024-01-01
  • oracle用户权限管理使用详解

    oracle用户权限管理使用详解

    这篇文章主要介绍了oracle用户权限管理使用方法,需要的朋友可以参考下
    2014-04-04
  • Oracle数据库实现远程访问方法

    Oracle数据库实现远程访问方法

    Oracle数据库的远程连接可以通过多种方式来实现,下面这篇文章主要给大家介绍了关于Oracle数据库实现远程访问的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • oracle数据排序后获取前几行数据的写法(rownum、fetch方式)

    oracle数据排序后获取前几行数据的写法(rownum、fetch方式)

    项目中用到Oracle分组查询取每组排序后的前N条记录,group by 只能返回每个组的单条统计,下面这篇文章主要给大家介绍了关于oracle数据排序后获取前几行数据的写法(rownum、fetch方式),需要的朋友可以参考下
    2022-12-12
  • JDBC连接集群数据库的方法

    JDBC连接集群数据库的方法

    这篇文章主要介绍了JDBC连接集群数据库的方法,有需要的朋友可以参考一下
    2013-12-12

最新评论