與over函式結合的幾個函式介紹

2021-07-12 06:26:45 字數 1399 閱讀 8377

下面以班級成績表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 第一題。先看變數 的結合方式以第一題為例 結合方式是 先看變數 分析變數與誰結合 之後再跳出括號從右...