在使用分组操作时的几个注意事项

来源:互联网 发布:坐久了腰疼 知乎 编辑:程序博客网 时间:2024/06/05 04:42

注意事项一:

如果没有groub   by子句,则在select子句中只允许出现统计函数,其他任何字段都不允许出现。

错误范例:select   deptno,count(empno)    from   emp;     这样会造成字段列,和统计列的长度不一至,这是不允许的。

正确范例:select   count(empno)    from   emp;

注意事项二:

在统计查询中,select子句后只允许出现分组字段和统计函数,而其它非统计这段不允许出现。

错误范例:select  deptno,ename,count(empno)   from   emp   group   by   deptno;

这样会造成字段列,和统计列的长度不一至,这是不允许的。

正确范例:select   deptno ,ename,count(empno)   from  emp  group  by  deptno;

注意事项三:

统计函数允许嵌套使用,但是嵌套统计函数之后的select子句中不允许再出现任何的字段,包括分组字段








统计函数嵌套分析

 

 通过上图所示的查询结果可以发现,这个结果返回的数据就像数据表一样,存在数据列、

数据行,所以在数据库中就可以将查询的结果称为临时表,

如果现在对这张临时表的sum(sal)字段要求出最大值,也就是相当于再单独使用一次max()

函数,按照分组的要求,如果没有出现group  by子句,则查询中不能出现分组条件之外的内

容,所以这也就是为什么分组函数嵌套后,不允许出现其他查询字段的原因了。

分组的规律:

1.当需要使用分组函数而且又需要查询其他列(分组条件)时,一般都要进行分组统计。

例如:查询每个部门的编号、人数,这时很明显就不能单独使用一个count()函数解决问题了,

还需要查询deptno列的内容,那么就一定要使用分组。

2.一个列一存在重复值的时候就都可以使用分组进行操作,这个列可能是具体表的列,

也可能是返回的临时表的列。



0 0
原创粉丝点击