環境:windows 2000 server + oracle8.1.7 + sql*plus
目的:以oracle自帶的scott模式為測試環境,主要通過試驗體會分析函式的用法。
2.rank()、dense_rank() 的使用
原表資訊:
sql> break on deptno skip 1 -- 為效果更明顯,把不同部門的資料隔段顯示。
sql> select deptno,ename,sal
2 from emp
3 order by deptno,sal desc;
deptno ename sal
---------- ---------- ----------
10 king 5000
clark 2450
miller 1300
20 scott 3000
ford 3000
jones 2975
adams 1100
**ith 800
30 blake 2850
allen 1600
turner 1500
ward 1250
martin 1250
james 950
已選擇14行。
使用rank()查出各部門薪水前三名的員工姓名、薪水。
sql> select * from (
2 select deptno,rank() over(partition by deptno order by sal desc) rk,ename,sal
3 from emp
4 )
5 where rk<=3
6 /
deptno rk ename sal
---------- ---------- ---------- ----------
10 1 king 5000
2 clark 2450
3 miller 1300
20 1 scott 3000
1 ford 3000
3 jones 2975
30 1 blake 2850
2 allen 1600
3 turner 1500
已選擇9行。
使用dense_rank()查出各部門薪水前三名的員工姓名、薪水。
sql> select * from (
2 select deptno,dense_rank() over(partition by deptno order by sal desc) drk,ename,sal
3 from emp
4 )
5 where drk<=3
6 /
deptno drk ename sal
---------- ---------- ---------- ----------
10 1 king 5000
2 clark 2450
3 miller 1300
20 1 scott 3000
1 ford 3000
2 jones 2975
3 adams 1100
30 1 blake 2850
2 allen 1600
3 turner 1500
已選擇10行。
oracle 分析函式2
rank,dense rank,row number row number 12345 row number函式返回一個唯一的值,當碰到相同資料時,排名按照記錄集中記錄的順序依次遞增。dense rank 12223 dense rank函式返回一個唯一的值,除非當碰到相同資料時,此時所有相同資料的...
oracle統計函式學習
資料庫準備 create table emp deptno int not null,ename varchar 100 default null,sal int default null insert into emp values 10,king 5000 insert into emp val...
隨機函式學習筆記
在c語言中 來自rand 函式產生一個隨機數 0到 0x7fff 之間 原型為int rand void srand 函式和 rand函式配合使用,產生隨機數的起始發生資料原型為 void srand unsigned seed 兩者對應的標頭檔案均為 stdlib.h stdlib.h中有如下定義...
struct typedef函式學習筆記
struct 可以看成是一個自定義的資料型別 可以定義結構體型別所對應的變數 注 1.只要是操作字串 必須要用字串的方法 比如如果想改變字串裡的內容 不能使用直接 的方式賦值 還是用 strcpy 2.struct自定義型別可以直接傳值,陣列不可以.e.g.struct students stu4 ...
C 函式學習筆記
system.diagnostics.debug.writeline 資訊 輸出 system.diagnostics.debug.assert false,資訊 斷言 一 一維 int numbers new int 不定長 int numbers new int 3 定長 二 多維 int nu...