麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Oracle > 正文

Oracle 分析函數RANK(),ROW_NUMBER(),LAG()等的使用方法

2024-08-29 13:56:04
字體:
來源:轉載
供稿:網友
ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2)

表示根據COL1分組,在分組內部根據 COL2排序
而這個值就表示每組內部排序后的順序編號(組內連續的唯一的)

RANK() 類似,不過RANK 排序的時候跟派名次一樣,可以并列2個第一名之后 是第3名

LAG 表示 分組排序后 ,組內后面一條記錄減前面一條記錄的差,第一條可返回 NULL

BTW: EXPERT ONE ON ONE 上講的最詳細,還有很多相關特性,文檔看起來比較費勁

row_number()和rownum差不多,功能更強一點(可以在各個分組內從1開時排序)
rank()是跳躍排序,有兩個第二名時接下來就是第四名(同樣是在各個分組內)
dense_rank()l是連續排序,有兩個第二名時仍然跟著第三名。
相比之下row_number是沒有重復值的
lag(arg1,arg2,arg3):
arg1是從其他行返回的表達式
arg2是希望檢索的當前行分區的偏移量。是一個正的偏移量,時一個往回檢索以前的行的數目。
arg3是在arg2表示的數目超出了分組的范圍時返回的值。


SQL> set pagesize 100;
SQL> select rownum from emp;

ROWNUM
----------
1
2
3
4
5
6
7
8
9
10
11
12
13
14

已選擇14行。

已用時間: 00: 00: 00.10
SQL> select deptno,row_number() over(partition by deptno order by sal) from emp order by deptno;


DEPTNO ROW_NUMBER()OVER(PARTITIONBYDEPTNOORDERBYSAL)
---------- ---------------------------------------------
10 1
2
3

20 1
2
3
4
5

30 1
2
3
4
5
6


已選擇14行。

已用時間: 00: 00: 00.41
SQL> select deptno,rank() over (partition by deptno order by sal) from emp order by deptno;

DEPTNO RANK()OVER(PARTITIONBYDEPTNOORDERBYSAL)
---------- ---------------------------------------
10 1
2
3

20 1
2
3
4
4

30 1
2
2
4
5
6


已選擇14行。

已用時間: 00: 00: 00.21
SQL> select deptno,dense_rank() over(partition by deptno order by sal) from emp order by deptno;

DEPTNO DENSE_RANK()OVER(PARTITIONBYDEPTNOORDERBYSAL)
---------- ---------------------------------------------
10 1
2
3

20 1
2
3
4
4

30 1
2
2
3
4
5


已選擇14行。

已用時間: 00: 00: 00.20
SQL> select deptno,ename,sal,lag(ename,1,null) over(partition by deptno order by ename) from emp ord
er by deptno;

DEPTNO ENAME SAL LAG(ENAME,
---------- ---------- ---------- ----------
10 CLARK 2450
KING 5000 CLARK
MILLER 1300 KING

20 ADAMS 1100
FORD 3000 ADAMS
JONES 2975 FORD
SCOTT 3000 JONES
SMITH 800 SCOTT

30 ALLEN 1600
BLAKE 2850 ALLEN
JAMES 950 BLAKE
MARTIN 1250 JAMES
TURNER 1500 MARTIN
WARD 1250 TURNER


已選擇14行。

已用時間: 00: 00: 00.31
SQL> select deptno,ename,sal,lag(ename,2,'example') over(partition by deptno order by ename) from em
p order by deptno;

DEPTNO ENAME SAL LAG(ENAME,
---------- ---------- ---------- ----------
10 CLARK 2450 example
KING 5000 example
MILLER 1300 CLARK

20 ADAMS 1100 example
FORD 3000 example
JONES 2975 ADAMS
SCOTT 3000 FORD
SMITH 800 JONES

30 ALLEN 1600 example
BLAKE 2850 example
JAMES 950 ALLEN
MARTIN 1250 BLAKE
TURNER 1500 JAMES
WARD 1250 MARTIN

已選擇14行。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人爱爱电影 | 欧美一级特黄特色大片免费 | 男女做性免费网站 | 毛片一级片 | av在线免费观看网 | 久久人人av | 色视频一区二区 | 九一国产精品 | 一区二区三区视频在线观看 | videos真实高潮xxxx | 日本成人一区二区三区 | 男女无遮挡羞羞视频 | 中文字幕四区 | 中文字幕一区2区 | 日韩一级免费毛片 | 一道本不卡一区 | 中文字幕在线观看亚洲 | 婷婷亚洲一区二区三区 | 色999久久久精品人人澡69 | 欧美精品成人一区二区在线观看 | 久久精品一区二区三区国产主播 | 色人阁导航 | 亚洲天堂成人在线 | 成人片免费视频 | 国产一区二区国产 | 久久国产精 | 欧美亚洲综合在线 | 国产美女自拍av | 末成年女av片一区二区 | 色人阁导航 | 久久久久久久黄色片 | 一级大黄毛片免费观看 | a网站在线| 青青草成人免费视频在线 | 一级免费黄视频 | 亚洲四播房 | 男女生羞羞视频网站在线观看 | 成人羞羞网站入口 | 欧美成人一区二区三区电影 | 特级黄aaaaaaaaa毛片 | 国产一区二区国产 |