oracle數據庫函數之============‘’分析函數和聚合函數‘’


1分析函數

分析函數根據一組行來進行聚合計算,用於計算完成狙擊的累積排名等,分析函數為每組記錄返回多個行

rank_number()

查詢結果按照次序排列,不存在並列和站位的情況,可以用於做Oracle的分頁

例如:SELECT tname,sal,row_number() OVER(ORDER BY sal DESC) 降序 FROM teacher; 

查詢結果如圖:

rank()

排序結果如有並列成績,則並列成績就會占取下一順序的位置,下一個成績則會跳過下一序號排列

例如:SELECT tname,sal,RANK() OVER(PARTITION BY deptno ORDER BY sal) 降序 FROM teacher;

dense_rank()

 查詢的排序結果如果有相同成績,則相同的成績名次並列但不占下一個名次的位置,查詢的結果還是順序的

例如:SELECT tname,sal,dense_rank() OVER(PARTITION BY deptno ORDER BY sal DESC) 降序 FROM teacher;

 2.聚合函數

聚合函數是基於一組數據來返回結果,返回的結果只有一個值

常用聚合函數有avg()  max()  sum()  min()  count(0);

--老師工資平均數

SELECT AVG(sal) FROM teacher;

--老師工資總數
SELECT SUM(sal) FROM teacher;

 

--老師總數
SELECT COUNT(0) FROM teacher;

注:面對大量數據時count(0)的處理效率要明顯高於count(*)

--老師工資最大值
SELECT MAX(sal) FROM teacher;

-老師工資最小值
SELECT MIN(sal) FROM teacher;-

--查詢各部門的編號,最高工資,最低工資,工資總數,平均工資,並按照部門的工資總數降序排列
SELECT deptno,MAX(sal),MIN(sal),SUM(sal),AVG(sal) FROM teacher GROUP BY deptno ORDER BY SUM(sal);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM