sql over函數(shù)

sql over函數(shù)

ID:37240567

大?。?00.50 KB

頁數(shù):13頁

時間:2019-05-20

sql over函數(shù)_第1頁
sql over函數(shù)_第2頁
sql over函數(shù)_第3頁
sql over函數(shù)_第4頁
sql over函數(shù)_第5頁
資源描述:

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

1、oracle分析函數(shù)over的用法oracle分析函數(shù)over的用法分析函數(shù),最早是從ORACLE8.1.6開始出現(xiàn)的,它的設(shè)計目的是為了解決諸如“累計計算”,“找出分組內(nèi)百分比”,“前-N條查詢”,“移動平均數(shù)計算”"等問題。其實大部分的問題都可以用PL/SQL解決,但是它的性能并不能達到你所期望的效果。分析函數(shù)是SQL言語的一種擴充,它并不是僅僅試代碼變得更簡單而已,它的速度比純粹的SQL或者PL/SQL更快。現(xiàn)在這些擴展已經(jīng)被納入了美國國家標準化組織SQL委員會的SQL規(guī)范說明書中。分析函數(shù)是在一個記錄行

2、分組的基礎(chǔ)上計算它們的總值。與集合函數(shù)不同,他們返回各分組的多行記錄。行的分組被稱窗口,并通過分析語句定義。對于每記錄行,定義了一個“滑動”窗口。該窗口確定“當前行”計算的范圍。窗口的大小可由各行的實際編號或由時間等邏輯間隔確定。除了ORDERBY(按…排序)語句外,分析函數(shù)是一條查詢被執(zhí)行的操作。所有合并、WHERE、GROUPBY、HAVING語句都是分析函數(shù)處理之前完成的。因此,分析函數(shù)只出現(xiàn)在選擇目錄或ORDERBY(按…排序)語句中。前期數(shù)據(jù)準備:createtableEMP(ENAMEVARCHAR

3、2(10),DEPTNOVARCHAR2(2),SALNUMBER(10))insertintoEMP(ENAME,DEPTNO,SAL)values('CLARK','10',2450);insertintoEMP(ENAME,DEPTNO,SAL)values('MILLER','10',1300);insertintoEMP(ENAME,DEPTNO,SAL)values('KING','10',5000);insertintoEMP(ENAME,DEPTNO,SAL)values('FORD','20'

4、,3000);insertintoEMP(ENAME,DEPTNO,SAL)values('ADAMS','20',1100);insertintoEMP(ENAME,DEPTNO,SAL)values('JONES','20',2975);insertintoEMP(ENAME,DEPTNO,SAL)values('SCOTT','20',3000);insertintoEMP(ENAME,DEPTNO,SAL)values('SMITH','20',800);insertintoEMP(ENAME,DEPT

5、NO,SAL)values('ALLEN','30',1600);insertintoEMP(ENAME,DEPTNO,SAL)values('BLAKE','30',2850);insertintoEMP(ENAME,DEPTNO,SAL)values('JAMES','30',950);insertintoEMP(ENAME,DEPTNO,SAL)values('TURNER','30',1500);insertintoEMP(ENAME,DEPTNO,SAL)values('MARTIN','30',12

6、50);insertintoEMP(ENAME,DEPTNO,SAL)values('WARD','30',1250);commit;TheSyntax句法:OVER()根據(jù)劃分表達式設(shè)置的規(guī)則,PARTITIONBY(按…劃分)將一個結(jié)果邏輯分成N個分組劃分表達式。在此“劃分”和“分組”用作同義詞。分析函數(shù)獨立應用于各個分組,并在應用時重置(按…排序)語句規(guī)定了每個分組(劃分)的數(shù)據(jù)如何排序。

7、這必然影響分析函數(shù)的結(jié)果。窗口生成語句用以定義滑動或固定數(shù)據(jù)窗口,分析函數(shù)在分組內(nèi)進行分析。該語句能夠?qū)Ψ纸M中任意定義的滑動或固定窗口進行計算。Example:CalculatearunningTotal例:累計計算:本例中對某部門的工資進行逐行計算,每行包括之前所有行中工資的合計。SELECTename"Ename",deptno"Deptno",sal"Sal",SUM(sal)OVER(ORDERBYdeptno,ename)"RunningTotal",SUM(SAL)OVER(PARTITIONBYd

8、eptnoORDERBYename)"DeptTotal",ROW_NUMBER()OVER(PARTITIONBYdeptnoORDERBYENAME)"Seq"FROMempORDERBYdeptno,ename/EnameDeptnoSalRunningTotalDeptTotalSeq---------------------------------------------CL

當前文檔最多預覽五頁,下載文檔查看全文

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

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