Oracle 分析函數RANK(),ROW_NUMBER(),LAG()建站知識
導讀:[標網站建設制作簽:目錄]建站知識Oracle分析函數RANK(),ROW_NUMBER(),LAG()等的使用方法,需要的朋友可以參考下。seo網站優化網站建設。
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; ROW營銷型網站建設NUM ---------- 1 2 3 4 網站推廣優化seo5 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行。相關seo網站優化網站建設。
關鍵詞標簽: 標簽 函數 ROW_NUMBER() LAG()建站知識1
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-23 ,文章Oracle 分析函數RANK(),ROW_NUMBER(),LAG()建站知識主要講述函數,標簽,Oracle 分析函數RANK(),ROW_NU網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_5693.html