Oracle中有关Group by 中avg();sum();min();max();count();的运
Oracle中有关Group by 中avg();sum();min();max();count();的运用整理(Oracle的执行顺序)
表 tabzx: Sql代码
表数据: 查询语句: 1: selectcount(*),avg(tabzx.salary),147)">sum(tabzx.salary),max(tabzx.salary),85); font-weight:bold">min(tabzx.salary)fromtabzx结果: 分析: 此时Oracle将表tabzx作为一个单独的组(group)进行函数处理的;
Assumption: SQL表达式编写为: selecttabzx.dept_id,85); font-weight:bold">fromtabzx结果: 总结: Oracle中,avg();sum();min();max();的返回是都是一条数据,针对同一张表,同样的查询条件,使用可以在同一张表中显示;修改后出错,因为SQL中的条件整张表,所以不能显示任何原来表中的字段。弹出以上提示....
2: selecttabzx.dept_name,85); font-weight:bold">fromtabzxgroupbytabzx.dept_name结果: 分析: 第一个SQL特殊的group by,此处的SQL就算相对特殊的group by tabzx.dept_name,此处可以增加一字段tabzx.dept_name。
Assumption: bytabzx.dept_name结果: 总结: Oracle中,avg();sum();min();max();的返回是都是一条数据,针对同一张表,同样的查询条件,使用可以在同一张表中显示;修改后出错,因为SQL中的条件group by tabzx.dept_name,所以不能显示其它表中的字段。弹出以上提示.... 值得注意的是:这里的avg();sum();min();max()的字段都可以任性选择。统计出来的结果,是分组后的统计...
3: avg(tabzx.dept_id),147)">sum(tabzx.dept_id),85); font-weight:bold">max(tabzx.salary)bytabzx.dept_name
结果: 4: bytabzx.dept_name,tabzx.em1_idhavingavg(tabzx.salary)>1000;
结果: 总结: group by_1_,_2_,_3_中,avg();sum();min();max();count();数据是按照_3_分组统计的....也就是说最后一个....
原创转载请注明,谢谢...
-----------------------------------------------------------------------------------------------------------------------------
1.select 列 from 表列表名/视图列表名 where 条件. 1. 先where 后select 2. 先where 再group 再having 后select 3. 先where 再group 再having 再select 后order 4. 先join 再where 后select (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |