/* 分組函數 不能再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;