您现在的位置是:群英 > 数据库 > 关系型数据库
oracle去重查询的方法有什么?你知道多少?
Admin发表于 2021-11-10 17:42:513756 次浏览

    这篇文章给大家分享的是oracle去重查询的方法,数据库中会存在很多重复数据,为了减轻查询的负担,我们查询的可以做去重查询,那么具体要怎样做呢?有什么方法?感兴趣的朋友接下来一起跟随小编看看吧。

    oracle去重查询的方法是:

    oracle 数据库多字段去重

    方法介绍:distinct 关键字、group by 、row_number ()over(partition by 列 order by 列 desc)

    我的需求是:根据某几列去重 查询出去重后的全部信息。最后我选择的是第三种方法。

    我的想法:我想找出一种更简单的方法去 实现去重查询。越直接越好。

    表结构&&内容

    1、distinct 关键字的用法:distinct 关键字后面的字段组合去重 distinct 必须

    select distinct id from test

    结果 ;根据id 去重

    select distinct id,name from test

    结果:根据id和name 组合去重(类似于 id || name 这样去重)

    2、group by 分组去重

    select id,name from test group by id,name

    结果:根据id,name 组合去重

    3、row_number ()over(partition by 列 order by 列 asc | desc)方法

    3.1 row_number() over(order by column asc) 先对列column按照升序,再为每条记录返回一个序列号

    3.2 row_number() over(partition by column1 order by column2 asc) 先按照column1分组,再对分组后的数据根据column2 升序排列

    注:order by 必须得有

    例子select a.*,row_number() over(partition by a.id,a.sex order by name) su from test a;

    去重例子:根据 id和sex 去重

    select id,name,sex from(

    select a.*,row_number() over(partition by a.id,a.sex order by name) su from test a )

    where su=1

    结果:

    我的需求是:根据某几列去重 查询出去重后的全部信息。

    关于oracle去重查询的方法就介绍到这,上述分享的两种方法仅供参考,感兴趣的朋友可以了解,希望能对大家有帮助。最后,想要了解更多oracle去重查询的内容,大家可以关注其它的相关文章。

文本转载自PHP中文网

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: oracle去重查询
相关信息推荐
2022-08-08 17:33:26 
摘要:本篇文章给大家带来了关于oracle的相关知识,其中主要介绍了关于误删oracle数据库中的数据,在不考虑全库备份和利用归档日志情况,怎样快速恢复数据的相关问题,下面一起来看一下,希望对大家有帮助。
2022-06-17 16:57:50 
摘要:关系数据库系统中使用的数据结构是二维表。在关系型数据库系统中,所有的数据都采用二维表的结构来表示,通常将这些二维表称为关系。在关系型数据库中,每一个关系都是一个二维表。
2022-05-14 11:37:20 
摘要:本文给大家介绍mysql怎么开启远程访问,希望对需要的朋友有所帮助!
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部