下面以班級成績表t2來說明其應用
t2表資訊如下:
cfe
2 74
dss
1 95
ffd
1 95
fda
1 80
gds
2 92
gf 3
99ddd
3 99
adf
3 45
asdf
3 55
3dd
3 78
select * from
( select name,class,s,rank()over(partition by class order by s desc) mmfrom t2
) where mm=1;
得到的結果是:
dss
1 95
1ffd
1 95
1gds
2 92
1gf
3 99
1ddd
3 99
1 注意:
1.在求第一名成績的時候,不能用row_number(),因為如果同班有兩個並列第一,row_number()只返回乙個結果;
select * from
( select name,class,s,row_number()over(partition by class order by s desc)mm from t2
) where mm=1;
1 95
1 --95有兩名但是只顯示乙個
2 92 13
99 1 --99有兩名但也只顯示乙個
select name,class,s,sum(s)over(partition by class order by s desc) mmfrom t2 --按班級對成績進行排序並累加求和
dss
1 95
190
--由於兩個95都是第一名,所以累加時是兩個第一名的相加
ffd
1 95
190
fda
1 80
270
--第一名加上第二名的
gds
2 92
92cfe
2 74
166gf
3 99
198ddd
3 99
1983dd
3 78
276asdf
3 55
331adf
3 45
376
Oracle中over 函式的使用
oracle中over 函式用法 將自己的研究結果記錄一下。個人理解 over 函式 是對 分析函式的一種條件解釋,直接點就是 給分析函式加條件吧。例如 sql select deptno,ename,sal,sum sal over partition by deptno from emp dep...
c 中的函式過載與函式指標相結合
1 函式過載與函式指標 當使用過載函式名對函式指標進行賦值時,根據過載規則挑選與函式指標引數列表一致的候選者,嚴格匹配候選者的函式型別與函式指標的函式型別,具體看如下 和注釋 include using namespace std void myfunc int a void myfunc char...
指標與函式和陣列結合
先來看看下面面試題 1.float def 10 2.double gh 10 3.double f 10 4.int b 10 5 long fun int 6.int f int,int int 第一題。先看變數 的結合方式以第一題為例 結合方式是 先看變數 分析變數與誰結合 之後再跳出括號從右...