row_number()()在(由COL2 col1顺序划分)

根据2组,它是进行组内根据COL2
这个值表示每组顺序之后的序列号(组中只有一个)。

秩()是相似的,但秩排序与第一个相同,2个第一位可以跟第三。

滞后是分组排序之后,组中的下一个记录减少了前一个记录的差异,第一个记录可以返回null。

顺便说一下:专家一对一是最详细的,并且有很多相关的功能,而且文档看起来更难。

row_number()类似于rownum,功能更强大一点(分1组)
秩()是跳转排序,有两个第二个名字和第四个(在每个组中)。
dense_rank()我是一个连续的排序,与第二名仍沿用第三。
相反,row_number不重复。
滞后(arg1,arg2,ARG3):
arg1是从其他线路返回一个表达式
arg2是当前行分区的偏移,你想找回。这是一个积极的偏移量,和以往的行数检索回来。
ARG3时返回的值的数量是代表超越2组的范围。


SQL >设置为100;
SQL>行号从EMP;

行号
----------
一
二
三
四
五
六
七
八
九
十
十一
十二
十三
十四

已经选了14行。

所用时间:00:00:0.10
SQL >选择DEPTNO,row_number()在(由萨尔DEPTNO顺序分区)从。


上row_number()在(partitionbydeptnoorderbysal)
-------------------------------------------------------
一百零一
二
三

二百零一
二
三
四
五

三百零一
二
三
四
五
六


已经选了14行。

所用时间:00:00:0.41
SQL >选择DEPTNO,秩()在(由萨尔DEPTNO顺序分区)从。

工资等级()在(partitionbydeptnoorderbysal)
,
一百零一
二
三

二百零一
二
三
四
四

三百零一
二
二
四
五
六


已经选了14行。

所用时间:00:00:0.21
SQL >选择DEPTNO,dense_rank()在(由萨尔DEPTNO顺序分区)从。

上dense_rank()在(partitionbydeptnoorderbysal)
-------------------------------------------------------
一百零一
二
三

二百零一
二
三
四
四

三百零一
二
二
三
四
五


已经选了14行。

所用时间:00:00:0.20
SQL >选择DEPTNO,ename,Sal,滞后(ename,1,null)在(分区表)
二由表;

deptno ename萨尔滞后(ename,
----------------------------------------
10克拉克2450
王5000克拉克
米勒1300王

20亚当斯1100
福特3000亚当斯
2975福特琼斯
史葛3000琼斯
800史葛史密斯

30艾伦1600
布莱克2850艾伦
杰姆斯950布莱克
1250杰姆斯马丁
特纳1500马丁
病房1250特纳


已经选了14行。

所用时间:00:00:0.31
SQL >选择DEPTNO,ename,Sal,滞后(ename,2,'example)在(分区表)
通过deptno p阶;

deptno ename萨尔滞后(ename,
----------------------------------------
10克拉克2450例
王5000例
1300克拉克米勒

20亚当斯1100例
福特3000例
琼斯2975亚当斯
3000福特史葛
800琼斯史密斯

30艾伦1600例
布莱克2850例
杰姆斯950艾伦
1250布莱克马丁
特纳1500杰姆斯
1250号病房马丁

已经选了14行。