row_number()over函数的使用(转)
row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的).
与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码. row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序). rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内). dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的 . lag(arg1,arg2,arg3): 看几个SQL语句: 语句一: select row_number() over(order by sale/cnt desc) as sort, sale/cnt 执行结果: SORT SALE/CNT 语句二:查询员工的工资,按部门排序 select ename,sal,row_number() over (partition by deptno order by sal desc) as sal_order from scott.emp; 执行结果: ENAME SAL SAL_ORDER 已选择14行。 语句三:查询每个部门的最高工资 select deptno,ename,sal from 执行结果: DEPTNO ENAME SAL 已选择3行。 语句四: select deptno,sal,rank() over (partition by deptno order by sal) as rank_order from scott.emp order by deptno; 执行结果: DEPTNO SAL RANK_ORDER 已选择14行。 语句五: select deptno,sal,dense_rank() over(partition by deptno order by sal) as dense_rank_order from scott.emp order by deptn; 执行结果: DEPTNO SAL DENSE_RANK_ORDER 已选择14行。 语句六: select deptno,ename,sal,lag(ename,1,null) over(partition by deptno order by ename) as lag_ from scott.emp order by deptno; 执行结果: DEPTNO ENAME SAL LAG_ 已选择14行。 |
row_number()over函数的使用(转)相关推荐
- ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...
- ROW_NUMBER() OVER()函数用法;(分组,排序),partition by
1.row_number() over()排序功能: (1) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排 ...
- ROW_NUMBER() OVER函数的基本用法用法
ROW_NUMBER() OVER函数的基本用法用法 转自:http://www.cnblogs.com/icebutterfly/archive/2009/08/05/1539657.html 语法 ...
- sql ROW_NUMBER() 排序函数
sql ROW_NUMBER() 排序函数 1使用row_number()函数进行编号:如 View Code 1 select email,customerID, ROW_NUMBER() over ...
- ROW_NUMBER() OVER() 函数用法详解 (分组排序,多例子)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 语法格式:row_number() over(partition by 分组列 order by 排 ...
- ROW_NUMBER() OVER()函数用法详解
今天同事问了一个关于插入表的问题,对象:被插入表sys_equi_disorg A , 查询表sys_equi_dict B 因为A表的ID不是自增的,并且不能更改表结构,主键默认值还是0, ...
- Oracle中ROW_NUMBER() OVER()函数用法
Oracle中ROW_NUMBER() OVER()函数用法 1. 说明:ROW_NUMBER() OVER() 函数的作用:分组排序 2. 原理: row_number() over() 函数,ov ...
- ROW_NUMBER() OVER()函数
语法格式:row_number() over(partition by 分组列 order by 排序列 desc) row_number() over()分组排序功能: 在使用 row_number ...
- SQL server中ROW_NUMBER() OVER()函数的使用方法
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN1 ORDER BY COLUMN2 DESC) 注释:COLUMN1:分组列:COLUMN2:排序列 ROW_NUMB ...
- row_number() over()函数和with as
做个笔记 row_number() over(partition by 分组列 order by 排序列 desc) SELECT *FROM (SELECT T.*,ROW_NUMBER() OVE ...
最新文章
- python的@修饰符
- step by step approach for building interactive dash app using python: step 1
- tf.truncated_normal的用法
- hdu 2544 dijkstra
- 升级jquery-easyui1.4.5后treegrid无法显示
- The Zen of Python
- CSU 1115 最短的名字
- Centos 系统swap虚拟内存添加与删除配置
- (转)微信扫码登录网页实现原理
- Hibernate的like用法
- Emacs 中英文字体设置
- 常用电子元器件基本知识整理
- 计算机表格斜杠怎么打,excel表格斜杠怎么分隔打字(怎么在excel里一个表格内划斜线并添加文字)...
- 关于python搜题的软件哪个好_搜题软件哪个更好?
- 使用 yarn 安装 marked
- 食物语服务器什么时候维护,食物语无法登录游戏怎么办_食物语无法登录游戏解决方法介绍_游戏吧...
- 手机投屏到电脑 -- 小黑超细日常教程
- IDEA的maven命令总是下载很多东西 解决办法
- 我是如何通过华为面试的?群面+技术面+综合面+英语面(Android岗)
- 使用钩子函数获取全部的鼠标消息和键盘消息
热门文章
- 运维管理成中小企业“心头大患” 飞塔“安接入”一步解决
- 小tips:JS语法之标签(label)
- 简单识别 RESTful 接口
- 老徐FrankXuLei受邀为花旗银行讲授《微软WCF服务分布式开发与SOA架构设计课程》...
- 万事无忧之看看网站的PR值
- 关于CMS的那点事 I
- 记录一次通过抓包解决Zabbix no active checks on server
- Go实战--二维码生成server
- mac terminal ssh client shuttle 免输密码
- XenMotion 与HA的区别