【腾讯云】爆款云服务器限时体验20元起,更多上云必备产品低至1元
首页 >数据库 >Oracle > 正文

oracle怎么去重查询

原创2020-06-09 09:53:4224155 关注公众号:每天精选资源文章推送

oracle去重查询的方法是:

oracle 数据库多字段去重

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

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

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

表结构&&内容

20170523141709729.png

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

select distinct id from test

结果 ;根据id 去重

select distinct id,name from test

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

20170523141826007.png

2、group by 分组去重

select id,name from test group by id,name

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

20170523141826007 (1).png

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;

495922db7b9ca13efec82fc1d64d859.png

去重例子:根据 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

结果:

4c1465208c6b5fb014e737721379bc3.png

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

推荐教程: 《Oracle教程

以上就是oracle怎么去重查询的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

  • 相关标签:oracle
  • 推荐:PHP从基础到实战教程视频

    相关文章

    相关视频


    专题推荐

    视频教程分类