oracle over函数 去重,oracle over结合row_number分区进行数据去重处理
一、创建一个测试表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分区进行数据去重处理相关推荐
- oracle+cast函数+长度,oracle cast() 函数问题
oracle cast() 函数问题 关键字: oracle cast() 函数问题 SQL> create table t1(a varchar(10)); Table created. SQ ...
- oracle 不等函数,SQL(Oracle)日常使用与不常使用函数的汇总
--日常使用的sql语句和oracle语句,有些相对使用的频率比较高,收藏起来还是比较值得的 -- 绝对值 SQL:select abs(-1) value Oracle:select abs(-1) ...
- Oracle count函数原理,oracle count函数
用来返回查询的行数. 当指定distinct时,不能接order_by_clause: 如果指定表达式,count返回表达式不为空的值: 当指定*号时,它返回所有行,含重复行和空值.count从不返回 ...
- oracle常用函数number,Oracle 常用函数介绍
Oracle常用函数介绍,包括日期函数.类型转换函数 常用日期函数 1.add_months()函数可以得到指定日期之前或之后n个月的日期 date_value:=add_months(date_va ...
- oracle lookup函数,关于Oracle过程,函数的经典例子及解析
存储过程在调用时,不管有无参数,都需要加(),存储过程为pro_test(); call pro_test(); exec pro_test(); 在调用时不加括号,如call pro_test;则会 ...
- oracle 聚合函数 日期,Oracle日期函数/字符函数/数字函数/转换函数/聚合函数
Oracle日期函数: MONTHS_BETWEEN:返回两个日期之间月份的差值 MONTHS_BETWEEN('01-EP-95','11-JAN-94') ===>19.6774194 AD ...
- oracle trunc函数 q,oracle中trunc函数的用法
TRUNC函数返回以指定元素格式截去一部分的日期值. 其具体的语法格式如下: TRUNC(date,[fmt]) 其中: date 为必要参数,是输入的一个日期值 fmt 参数可忽略,是日期格式,用以 ...
- oracle分类函数总结,Oracle分组函数之ROLLUP的基本用法
rollup函数 本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as s ...
- 千万数据去重_基于 Flink 的百亿数据去重实践
在工作中经常会遇到去重的场景,例如基于 App 的用户行为日志分析系统,用户的行为日志从手机客户端上报到 Nginx 服务端,通过 Logstash.Flume 或其他工具将日志从 Nginx 写入到 ...
最新文章
- 重磅!中科院白洋研究员加入《宏微名师讲堂》分享高通量分菌技术啦!
- 4、通过uiautomatorviewer实现appium元素定位
- order one question for the 4e4 exploitation
- SqlServer常用函数
- 字母异位词分组—leetcode49
- MySQL——高阶语句(中)
- windows传真和扫描由于不能访问您的文档_扫描识别工具Dynamic Web TWAIN全年最低价来了!错过再等一年...
- 地铁人多不多可在线查询了 高德地图率先在北京上线新功能
- php解析二级json,PHP Json 解析
- python识别银行卡数字_Python银行卡数字识别项目 (Opencv)
- arguments,caller,callee之理解
- 【基础处理】基于matlab Fxlms算法有源噪声控制系统【含Matlab源码 1394期】
- 关于如何写代码和学习代码
- 支付宝服务商模式下的支付开发
- 输入一系列整数,建立二叉排序树,并进行前序,中序,后序遍历。
- Unity EmbeddedBrowser浏览器插件事件通讯
- docker 离线安装 mysql_Linux下离线安装Docker
- JAVA基础算法练习(2):猜年龄
- python断网重联_Python实现WiFi断线自动重连的方法详解
- Dbeaver基本使用
热门文章
- transport request 实现原理
- workflow initialization in webclient ui - Remote call case
- utf8 and unicode
- 推荐一个采用方便程序员在线动画学习常用算法的良心网站
- CRM WebClient UI outbound plug的使用
- SAP CDS view里,什么时候用left join,什么时候用association
- 如何处理SAP CRM错误消息the item category X is not permitted
- linux运维学了又忘记,Linux运维工程师经常忘记的10个实用Linux命令
- php魔术方法例子,PHP中魔术方法的使用举例
- java 按键消息监听器用法,Java命令行中的键监听器