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

    这篇文章给大家分享的是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-05-16 17:20:34 
摘要:在oracle中,not用于对指定的条件取反,当指定的条件为真时,not的结果就是假,当指定的条件为假时,not的结果就是真,语法为“Select where not 条件表达式”。
2022-10-19 17:30:20 
摘要:本篇文章给大家带来了关于mysql的相关知识,最左匹配原则就是指在联合索引中,如果你的SQL语句中用到了联合索引中的最左边的索引,那么这条SQL语句就可以利用这个联合索引去进行匹配,下面介绍了关于MySQL索引最左匹配原则的相关资料,希望对大家有帮助。
2022-06-29 17:34:46 
摘要:临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,本文主要介绍了Oracle 临时表空间SQL语句的实现,感兴趣的可以了解一下
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 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
微信公众号
返回顶部
返回顶部 返回顶部