婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle 分析函數RANK(),ROW_NUMBER(),LAG()等的使用方法

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

熱門標簽:北京營銷外呼系統廠家 外呼系統鄭州 溫州人工外呼系統 外呼系統口號 地圖標注付款了怎么找不到了 北京外呼系統公司排名 貴陽智能電銷機器人官網 百度地圖標注員是干什么 沈陽400電話是如何辦理
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行。
您可能感興趣的文章:
  • oracle中rownum和row_number()
  • Oracle Number型數值存儲與轉換的實現詳解
  • Oracle Number型的深入理解
  • oracle to_char函數將number轉成string
  • Oracle row_number() over()解析函數高效實現分頁
  • Oracle數字類型number自增的實現代碼

標簽:包頭 溫州 淮北 衢州 定西 衡水 通遼 潮州

巨人網絡通訊聲明:本文標題《Oracle 分析函數RANK(),ROW_NUMBER(),LAG()等的使用方法》,本文關鍵詞  Oracle,分析,函數,RANK,ROW,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle 分析函數RANK(),ROW_NUMBER(),LAG()等的使用方法》相關的同類信息!
  • 本頁收集關于Oracle 分析函數RANK(),ROW_NUMBER(),LAG()等的使用方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 昌邑市| 辛集市| 韶山市| 乌兰察布市| 江安县| 乐山市| 禹州市| 会理县| 恩平市| 合山市| 宜州市| 朝阳市| 抚州市| 华容县| 宁国市| 关岭| 鄢陵县| 获嘉县| 天祝| 偃师市| 台中市| 大化| 洪泽县| 布拖县| 汽车| 抚宁县| 翁牛特旗| 石林| 临沧市| 海宁市| 晋州市| 蓬安县| 和龙市| 华池县| 林西县| 稷山县| 宿州市| 临澧县| 汕尾市| 罗田县| 百色市|