/*
分组函数
不能再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 - 查询语句 - 分组函数
原创
©著作权归作者所有:来自51CTO博客作者路迢迢_51的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:JDBC+XML+DOM4J
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Oracle-分组统计查询
Oracle-分组统计查询
oracle 数据库 字段 多表查询 sql -
水墨风鼠标效果实现
实现水墨拖尾、点击水墨圈效果鼠标
vue.js 前端 javascript ci html -
Spring Bean 生命周期详解:初始化与销毁方式对比与实践
各种方式的优缺点,展示了完整的执行顺序,并给出了实际开发中的典型应用场景。建
spring python java 初始化 System
















