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 末日風情 閱讀(374) 評論(0)  編輯  收藏 所屬分類: oracle
          <2008年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 伊川县| 莱西市| 辽中县| 呈贡县| 治县。| 施甸县| 万山特区| 隆德县| 同仁县| 恭城| 县级市| 荣成市| 枞阳县| 历史| 嘉峪关市| 西峡县| 龙井市| 蓝田县| 尤溪县| 陇西县| 曲阜市| 嵩明县| 龙游县| 云南省| 镇巴县| 博客| 金坛市| 阳谷县| 泊头市| 白玉县| 广西| 深水埗区| 邯郸市| 永清县| 隆尧县| 琼中| 新龙县| 虞城县| 大城县| 平塘县| 湖南省|