1. 程式人生 > >Oracle - 查詢語句 - 分組函數

Oracle - 查詢語句 - 分組函數

出現 erb 現在 不同 max 過濾 group cnblogs 語句

/*
    分組函數
        不能再select子句中出現普通的列,除非這個列在group by中給出
        所有的空值都會被分為一組
    分組過濾
        
    SELECT FROM WHERE GROUPBY HAVING ORDERBY
        
*/
--求出每種工作的平均薪資
SELECT JOB,AVG(SAL),MAX(SAL),MIN(SAL) FROM EMP GROUP BY JOB;
    
SELECT MAX(SAL) FROM EMP;
SELECT DEPTNO,AVG(SAL) FROM EMP GROUP
BY DEPTNO; --查詢每個部門中,不同工作的平均薪資 SELECT DEPTNO,JOB,AVG(SAL) FROM EMP GROUP BY DEPTNO ,JOB ORDER BY DEPTNO,JOB; --分組函數語句中,select子句中出現的每一個列必須出現在出現在group by後面, --除非是一個組函數,而且需要遵循組函數的使用規則 SELECT DEPTNO,AVG(SAL),MIN(ENAME) FROM EMP GROUP BY DEPTNO; --按照津貼進行分組 SELECT COMM,COUNT(*) FROM EMP GROUP
BY COMM; --查詢 每個部門中 薪資大於2000員工的平均薪資 SELECT DEPTNO,AVG(SAL) FROM EMP WHERE SAL>2000 GROUP BY DEPTNO; --查詢部門的平均薪資,如果平均薪資低於2000就過濾掉 SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO HAVING AVG(SAL)>2000; --查詢薪資大於等於2500的員工,按照工作進行分組,然後求出平均薪資大於等於3000的工作 SELECT * FROM EMP;--14 SELECT * FROM EMP WHERE SAL>=2500
;--5 SELECT JOB,AVG(SAL) FROM EMP WHERE SAL>=2500 GROUP BY JOB;--3 SELECT JOB,AVG(SAL) FROM EMP WHERE SAL>=2500 GROUP BY JOB HAVING AVG(SAL)>=3000;--2 SELECT JOB,AVG(SAL) FROM EMP WHERE SAL>=2500 GROUP BY JOB HAVING AVG(SAL)>=3000 ORDER BY AVG(SAL) DESC;

Oracle - 查詢語句 - 分組函數