首页 > 代码库 > Oracle - 查询语句 - 分组函数
Oracle - 查询语句 - 分组函数
/* 分组函数 不能再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;--14SELECT * FROM EMP WHERE SAL>=2500;--5SELECT JOB,AVG(SAL) FROM EMP WHERE SAL>=2500 GROUP BY JOB;--3SELECT JOB,AVG(SAL) FROM EMP WHERE SAL>=2500 GROUP BY JOB HAVING AVG(SAL)>=3000;--2SELECT JOB,AVG(SAL) FROM EMP WHERE SAL>=2500 GROUP BY JOB HAVING AVG(SAL)>=3000 ORDER BY AVG(SAL) DESC;
Oracle - 查询语句 - 分组函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。