一,如果一个查询中使用了分组函数,任何不在分组函数中的列或表达式必须要在group by中,否则出错。
第一个查询中,deptno没有出现在group by中,也没有出现在分组函数中,因此出错。将deptno改成job就可以了。该条语句的意义为:按工作分组查出每一项工作的平均薪水二,having 子句
oracle 规定where子句不可以使用分组函数,这时我们必须使用having子句方可完成功能。
select job,avg(sal) from emp having avg(sal)>1500 group by job;
使用having子句时,oracle系统的处理顺序是:
1,首先对数据行进行分组。
2,把所得到的分组应用到分组函数中。
3,最好显示满足having条件的记录。
三,分组函数的嵌套
不多说直接上图
该语句的执行顺序是:
1,执行where子句,查出job符合条件的记录。
2,根据job进行分组。
3,根据分组情况求出各组的平均工资。
4,找出各组中最大和最小的平均工资。
group by,having,order by的用法详解
2019-11-29 17:51oracle教程网 Oracle
如果一个查询中使用了分组函数,任何不在分组函数中的列或表达式必须要在group by中,下面为大家简要介绍下group by,having,order by的用法
延伸 · 阅读
- 2022-02-13聚合函数和group by的关系详解
- 2022-01-17group by用法详解
- 2022-01-11MySQL数据库索引order by排序精讲
- 2021-12-09SQL中where和having的区别详解
- 2021-12-07浅谈MySQL中的group by
- 2021-12-06MySQL中order by的使用详情
- Oracle
oracle 动态AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)
本方法实现用常量和常量数组完美创建和控制动态TAdvStringGrid。 ...
- Oracle
Linux中Oracle数据库备份
在Linux中Oracle数据库备份的方法有很多,就像mysql一样可以使用不同方法进行备份oracle数据库 ...
- Oracle
oracle中利用关键字rownum查询前20名员工信息及rownum用法
这篇文章主要介绍了oracle中利用关键字rownum查询前20名员工信息,本文通过代码给大家简单介绍了ORACLE 中ROWNUM用法,非常不错,具有一定的参考借鉴价值,需...
- Oracle
oracle 优化的一点体会
oracle 优化的一点体会大家可以参考下,提升运行效率。 ...
- Oracle
[Oracle] dbms_metadata.get_ddl 的使用方法总结
以下是对Oracle中dbms_metadata.get_ddl的用法进行了详细的分析介绍,需要的朋友参考下 ...
- Oracle
Oracle查看表结构命令详解
这篇文章主要介绍了Oracle查看表结构命令详解的相关资料,需要的朋友可以参考下 ...
- Oracle
Oracle数据库由dataguard备库引起的log file sync等待问题
这篇文章主要介绍了Oracle数据库由dataguard备库引起的log file sync等待,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...
- Oracle
oracle使用instr或like方法判断是否包含字符串
使用contains谓词有个条件,那就是列要建立索引,本节主要介绍了oracle使用instr或like方法判断是否包含字符串,需要的朋友可以参考下 ...