posts - 104,  comments - 34,  trackbacks - 0
          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行。 

          posted on 2008-10-09 09:12 末日風情 閱讀(378) 評論(0)  編輯  收藏 所屬分類: oracle
          <2008年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 裕民县| 安顺市| 满城县| 汝城县| 梨树县| 朝阳县| 维西| 克东县| 武乡县| 青川县| 容城县| 文成县| 沅江市| 隆子县| 海原县| 金溪县| 夏邑县| 防城港市| 遵义市| 雷波县| 紫金县| 青川县| 宝丰县| 武义县| 历史| 正宁县| 邵阳市| 岢岚县| 惠水县| 上饶市| 武功县| 陈巴尔虎旗| 吴川市| 股票| 文登市| 金堂县| 新巴尔虎右旗| 阿拉尔市| 禹州市| 西华县| 佛冈县|