Oracle函數(shù)-分析函數(shù)1

Oracle函數(shù)-分析函數(shù)1

ID:43325304

大小:402.12 KB

頁數(shù):12頁

時間:2019-09-30

Oracle函數(shù)-分析函數(shù)1_第1頁
Oracle函數(shù)-分析函數(shù)1_第2頁
Oracle函數(shù)-分析函數(shù)1_第3頁
Oracle函數(shù)-分析函數(shù)1_第4頁
Oracle函數(shù)-分析函數(shù)1_第5頁
資源描述:

《Oracle函數(shù)-分析函數(shù)1》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、OVER(PARTITIONBY)函數(shù)用法2010年10月26日OVER(PARTITIONBY)函數(shù)介紹開窗函數(shù)Oracle從8.1.6開始提供分析函數(shù),分析函數(shù)用于計算基于組的某種聚合值,它和聚合函數(shù)的不同之處是:對于每個組返回多行,而聚合函數(shù)對于每個組只返回一行。開窗函數(shù)指定了分析函數(shù)工作的數(shù)據(jù)窗口大小,這個數(shù)據(jù)窗口大小可能會隨著行的變化而變化,舉例如下:1:over后的寫法:over(orderbysalary)按照salary排序進(jìn)行累計,orderby是個默認(rèn)的開窗函數(shù)over(partition

2、bydeptno)按照部門分區(qū)over(partitionbydeptnoorderbysalary)2:開窗的窗口范圍:over(orderbysalaryrangebetween5precedingand5following):窗口范圍為當(dāng)前行數(shù)據(jù)幅度減5加5后的范圍內(nèi)的。舉例:—sum(s)over(orderbysrangebetween2precedingand2following)表示力口2或2的范圍內(nèi)的求和selectname,classes,sum(s)over(orderbysrangebe

3、tween2precedingand2following)mmfromt2adf34545-45加2減2即43到47,但是s在這個范圍內(nèi)只有45asdf35555cfe274743dd378158-78在76到80范圍內(nèi)有78,80,求和得158fda180158gds29292ffd195190190198198following)口范圍為當(dāng)前行前后各移動5行。dss195ddd399gf399over(orderbysalaryrowsbetween5precedingand5舉例:一sum(s)over

4、(orderbysrowsbetween2precedingand2following)表示在上下兩彳〒之間的范圍內(nèi)selectname,class’s,sum(s)over(orderbysrowsbetween2precedingand2following)mmfromt2fda80gdsffd929546sidsdfddg959999adf345174asdf355252cfe2743323dd378379(45+55+74=174)(45+55+74+78=252)(74+55+45+78+80=33

5、2)(78+74+55+80+92=379)over(orderbysalaryrangebetweenunboundedprecedingandunboundedfollowing)或者over(orderbysalaryrowsbetweenunboundedprecedingandunboundedfollowing):窗口不做限制3、與over函數(shù)結(jié)合的幾個函數(shù)介紹row_number()over()^rank()over()和dense_rank()over()函數(shù)的使用下面以班級成績表t2來說明其

6、應(yīng)用t2表信息如下:cfe274dss195ffd195fda180gds292gf399ddd399adf345asdf3553dd378select*fromselectname,class,s,rank()over(partitionbyclassorderbysdesc)mmfromt2)wheremm=1;得到的結(jié)果是:dss1951ffd1951gds2921gf3991ddd3991注意:1.在求第一名成績的時候,不能用row_number(),因為如果同班有兩個并列第一,row_number(

7、)只返回一個結(jié)果;select*from(selectname,class,s,row_number()over(partitionbyclassorderbysdesc)mmfromt2)wheremm=1;1951--95有兩名但是只顯示一個29213991--99有兩名但也只顯喬個2.rank()和dense_rank()可以將所有的都查找出來:如上可以看到采用rank可以將并列第一名的都查找出來;rank()和dense_rank()[x另!]:—rank()是跳躍排序,有兩個第二名時接下來就是第四名

8、;selectname,class,s,rank()over(partitionbyclassorderbysdesc)mmfromt2dss1951ffd1951fda1803一直接就跳到了第二gds2921cfe2742gf3991ddd39913dd3783asdf3554adf3455mmfromt2—dense_rank()l是連續(xù)排序,有兩個第二名時仍然跟著第三名鬻ctname,clas

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。