oracle数据库去重查询_oracle高效去重

oracle数据库去重查询_oracle高效去重数据库多字段去重方法介绍:distinct关键字、groupby 、row_number()over()

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

oracle 数据库多字段去重

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

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

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

表结构&&内容

oracle数据库去重查询_oracle高效去重

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

select distinct id from test

结果 ;根据id 去重

select distinct id,name from test

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

oracle数据库去重查询_oracle高效去重

2、group by 分组去重

select id,name from test group by id,name

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

oracle数据库去重查询_oracle高效去重

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;

oracle数据库去重查询_oracle高效去重

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187035.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [Err] 1062 – Duplicate entry ‘0’ for key ‘PRIMARY’

    [Err] 1062 – Duplicate entry ‘0’ for key ‘PRIMARY’

    2021年10月17日
  • c语言和vc的区别_c++是c语言的升级版吗

    c语言和vc的区别_c++是c语言的升级版吗returnx+y}fnsub(x,yint)int{returnx-y}就像在Go和C中一样,函数不能重载。这简化了代码并提高了可维护性和可读性。函数可以在声明之前使用:add和sub在main之后声明,但仍然可以从main调用。对于V中的所有声明都是如此,并且不需要头文件或考虑文件和声明的顺序。V的目标之一是向具有不同编译器开发经验的开发人员开放。作者希望编译器不再是让人捉摸不透、只…

    2022年8月12日
  • TerminateProcess Function

     Terminatesthespecifiedprocessandallofitsthreads. BOOLWINAPITerminateProcess(__inHANDLEhProcess,__inUINTuExitCode);ParametershProcessAhand

    2022年4月7日
  • C++中关于[]静态数组和new分配的动态数组的区别分析

    这篇文章主要介绍了C++中关于[]静态数组和new分配的动态数组的区别分析,很重要的概念,需要的朋友可以参考下本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加

    2021年12月27日
  • pycharm安装教程2020.3.4_pycharm安装后无解释器

    pycharm安装教程2020.3.4_pycharm安装后无解释器第一步安装解释器,第二步安装pycharm1第一步安装解释器1.1什么是解释器:??就是将Python程序翻译成为计算机可以识别的01代码1.2安装解释器:解释器安装地址:https://www.python.org/downloads/release/python-372根据自己的操作系统安装适配的解释器:这里以Windows为例注意安装的时候我们需要需注意吧解释器添加到环境变量里面双击开始安装勾选addpythontopath,如果安装的时候没有勾选,请安装结束以后按

    2022年8月26日
  • 安卓手机如何查看分辨率_读取屏幕内容的安卓软件

    安卓手机如何查看分辨率_读取屏幕内容的安卓软件本文主要解决获取手机屏幕的大小:例子很简单,主要通过DisplayMetrics类来获取相关的信息,代码如下效果图:XML文件1.activity_main.xmlxmlns:tools=”http://schemas.android.com/tools”android:layout_width=”match_parent”android:layout_height=”match_pa…

    2022年8月13日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号