一、创建一个测试表A

CREATE TABLE A(

ID INT,

NAME VARCHAR2(20)

);

二、向表中添加数据,且存在相同的数据

INSERT INTO A VALUES(1,'YUAN');

INSERT INTO A VALUES(1,'YUAN');

INSERT INTO A VALUES(1,'YUAN');

INSERT INTO A VALUES(2,'YUAN');

INSERT INTO A VALUES(3,'YUAN');

INSERT INTO A VALUES(4,'LI');

INSERT INTO A VALUES(5,'LI');

INSERT INTO A VALUES(6,'YANG');

查询得到的结果如下:

三、现在我们要查询Name不同的所有数据,每个数据只取一条,当面对这样的需求时,可以使用row_number() 函数加 over()函数来解决。

(1) 首先我们要懂原理,原理就是按照某个字段进行分区,将该字段相同的数据进行标号处理,然后每个分区里面只取第一个标号的数据即可达到目的,首先我们来对数据按照字段NAME进行分区处理:

SELECT id,name ,row_number() over(partition by name order by id) as groupindex from A;

查询得到的结果如下:

通过分区我们将NAME字段相同的一行数据做了标记处理,接下来只需要取标记为1的那一行数据即可达到数据去重的目的。

(2)根据分区,获取每个分区中对应分组下标的数据。

select * from (SELECT id,name ,row_number() over(partition by name order by id) as groupindex from A) B where b.groupindex=1 order by b.id; --这里获取的是分区中下标为1的那一条数据

执行结果如下:

标签:INSERT,over,number,id,VALUES,oracle,数据,INTO,分区

来源: https://www.cnblogs.com/yuanshuang-club/p/13791839.html

oracle over函数 去重,oracle over结合row_number分区进行数据去重处理相关推荐

  1. oracle+cast函数+长度,oracle cast() 函数问题

    oracle cast() 函数问题 关键字: oracle cast() 函数问题 SQL> create table t1(a varchar(10)); Table created. SQ ...

  2. oracle 不等函数,SQL(Oracle)日常使用与不常使用函数的汇总

    --日常使用的sql语句和oracle语句,有些相对使用的频率比较高,收藏起来还是比较值得的 -- 绝对值 SQL:select abs(-1) value Oracle:select abs(-1) ...

  3. Oracle count函数原理,oracle count函数

    用来返回查询的行数. 当指定distinct时,不能接order_by_clause: 如果指定表达式,count返回表达式不为空的值: 当指定*号时,它返回所有行,含重复行和空值.count从不返回 ...

  4. oracle常用函数number,Oracle 常用函数介绍

    Oracle常用函数介绍,包括日期函数.类型转换函数 常用日期函数 1.add_months()函数可以得到指定日期之前或之后n个月的日期 date_value:=add_months(date_va ...

  5. oracle lookup函数,关于Oracle过程,函数的经典例子及解析

    存储过程在调用时,不管有无参数,都需要加(),存储过程为pro_test(); call pro_test(); exec pro_test(); 在调用时不加括号,如call pro_test;则会 ...

  6. oracle 聚合函数 日期,Oracle日期函数/字符函数/数字函数/转换函数/聚合函数

    Oracle日期函数: MONTHS_BETWEEN:返回两个日期之间月份的差值 MONTHS_BETWEEN('01-EP-95','11-JAN-94') ===>19.6774194 AD ...

  7. oracle trunc函数 q,oracle中trunc函数的用法

    TRUNC函数返回以指定元素格式截去一部分的日期值. 其具体的语法格式如下: TRUNC(date,[fmt]) 其中: date 为必要参数,是输入的一个日期值 fmt 参数可忽略,是日期格式,用以 ...

  8. oracle分类函数总结,Oracle分组函数之ROLLUP的基本用法

    rollup函数 本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as s ...

  9. 千万数据去重_基于 Flink 的百亿数据去重实践

    在工作中经常会遇到去重的场景,例如基于 App 的用户行为日志分析系统,用户的行为日志从手机客户端上报到 Nginx 服务端,通过 Logstash.Flume 或其他工具将日志从 Nginx 写入到 ...

最新文章

  1. 重磅!中科院白洋研究员加入《宏微名师讲堂》分享高通量分菌技术啦!
  2. 4、通过uiautomatorviewer实现appium元素定位
  3. order one question for the 4e4 exploitation
  4. SqlServer常用函数
  5. 字母异位词分组—leetcode49
  6. MySQL——高阶语句(中)
  7. windows传真和扫描由于不能访问您的文档_扫描识别工具Dynamic Web TWAIN全年最低价来了!错过再等一年...
  8. 地铁人多不多可在线查询了 高德地图率先在北京上线新功能
  9. php解析二级json,PHP Json 解析
  10. python识别银行卡数字_Python银行卡数字识别项目 (Opencv)
  11. arguments,caller,callee之理解
  12. 【基础处理】基于matlab Fxlms算法有源噪声控制系统【含Matlab源码 1394期】
  13. 关于如何写代码和学习代码
  14. 支付宝服务商模式下的支付开发
  15. 输入一系列整数,建立二叉排序树,并进行前序,中序,后序遍历。
  16. Unity EmbeddedBrowser浏览器插件事件通讯
  17. docker 离线安装 mysql_Linux下离线安装Docker
  18. JAVA基础算法练习(2):猜年龄
  19. python断网重联_Python实现WiFi断线自动重连的方法详解
  20. Dbeaver基本使用

热门文章

  1. transport request 实现原理
  2. workflow initialization in webclient ui - Remote call case
  3. utf8 and unicode
  4. 推荐一个采用方便程序员在线动画学习常用算法的良心网站
  5. CRM WebClient UI outbound plug的使用
  6. SAP CDS view里,什么时候用left join,什么时候用association
  7. 如何处理SAP CRM错误消息the item category X is not permitted
  8. linux运维学了又忘记,Linux运维工程师经常忘记的10个实用Linux命令
  9. php魔术方法例子,PHP中魔术方法的使用举例
  10. java 按键消息监听器用法,Java命令行中的键监听器