表 tabzx:
- select * from tabzx
表数据:

查询语句:
1:
- select count(*),avg(tabzx.salary),sum(tabzx.salary),max(tabzx.salary),min(tabzx.salary)from tabzx
结果:
![]()
分析:
此时Oracle将表tabzx作为一个单独的组(group)进行函数处理的;
Assumption:
SQL表达式编写为:
- select tabzx.dept_id, count(*),avg(tabzx.salary),sum(tabzx.salary),max(tabzx.salary),min(tabzx.salary)from tabzx
结果:

总结:
Oracle中,avg();sum();min();max();的返回是都是一条数据,针对同一张表,同样的查询条件,使用可以在同一张表中显示;修改后出错,因为SQL中的条件整张表,所以不能显示任何原来表中的字段。弹出以上提示....
2:
- select tabzx.dept_name,count(*),avg(tabzx.salary),sum(tabzx.salary),max(tabzx.salary),min(tabzx.salary)from tabzx group by tabzx.dept_name
结果:

分析:
第一个SQL特殊的group by,此处的SQL就算相对特殊的group by tabzx.dept_name,此处可以增加一字段tabzx.dept_name。
Assumption:
- select tabzx.dept_name,tabzx.dept_id,count(*),avg(tabzx.salary),sum(tabzx.salary),max(tabzx.salary),min(tabzx.salary)from tabzx group by tabzx.dept_name
结果:

总结:
Oracle中,avg();sum();min();max();的返回是都是一条数据,针对同一张表,同样的查询条件,使用可以在同一张表中显示;修改后出错,因为SQL中的条件group by tabzx.dept_name,所以不能显示其它表中的字段。弹出以上提示....
值得注意的是:这里的avg();sum();min();max()的字段都可以任性选择。统计出来的结果,是分组后的统计...
3:
- select avg(tabzx.dept_id),sum(tabzx.dept_id) ,avg(tabzx.salary),sum(tabzx.salary),max(tabzx.salary)from tabzx group by tabzx.dept_name
结果:

4:
- select tabzx.dept_name,tabzx.job_cat,tabzx.em1_id,avg(tabzx.salary),max(tabzx.salary) from tabzx group by tabzx.dept_name,tabzx.job_cat,tabzx.em1_id having avg(tabzx.salary)>1000;
结果:

总结:
group by _1_ , _2_ , _3_ 中,avg();sum();min();max();count();数据是按照_3_ 分组统计的....也就是说最后一个....
原创转载请注明,谢谢...
-----------------------------------------------------------------------------------------------------------------------------
1.select 列 from 表列表名/视图列表名 where 条件.
2.select 列 from 表列表名/视图列表名 where 条件 group by (列列表) having 条件
3.select 列 from 表列表名/视图列表名 where 条件 group by (列列表) having 条件 order by 列列表
4.select 列 from 表1 join 表2 on 表1.列1=表2.列1...join 表n on 表n.列1=表(n-1).列1 where 表1.条件 and 表2.条件...表n.条件
执行顺序:
1. 先where 后select
2. 先where 再group 再having 后select
3. 先where 再group 再having 再select 后order
4. 先join 再where 后select
本文详细介绍了在 Oracle 数据库中如何使用 SQL 进行分组统计,包括 count(), avg(), sum(), max(), min() 函数的应用场景及注意事项。特别强调了 group by 子句在查询中的作用以及与这些聚合函数的配合使用。

758

被折叠的 条评论
为什么被折叠?



