首页数据库oracle去重查询的方法有什么?你知道多少?

oracle去重查询的方法有什么?你知道多少?

时间2024-03-24 18:52:03发布访客分类数据库浏览1254
导读:这篇文章给大家分享的是oracle去重查询的方法,数据库中会存在很多重复数据,为了减轻查询的负担,我们查询的可以做去重查询,那么具体要怎样做呢?有什么方法?感兴趣的朋友接下来一起跟随小编看看吧。oracle去重查询的方法是:oracle 数...

这篇文章给大家分享的是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中文网

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: oracle去重查询的方法有什么?你知道多少?
本文地址: https://pptw.com/jishu/652251.html
oracle数据库怎么启动?方法是什么? Java中实现AOP代理的方法和操作是怎样?

游客 回复需填写必要信息