全部科目 > 信息处理技术员 >
2012年下半年 上午试卷 综合知识
第 63 题
知识点 分组查询   GROUP BY   GROUP BY子句  
章/节 数据库应用基础知识  
 
 
在SQL中,GROUP BY子句用于(63)。
 
  A.  行选择说明
 
  B.  组选择说明
 
  C.  分组说明
 
  D.  排序说明
 
 




 
 
相关试题     SELECT查询 

  第64题    2012年下半年  
在SQL中,条件语句“WHERE性别="男"”的含义是(64)。

  第64题    2010年下半年  
在Access中,查询“学生”数据表的所有记录及字段的SQL语句是(64)

 
知识点讲解
· 分组查询
· GROUP BY
· GROUP BY子句
 
        分组查询
        (1)GROUP BY子句。
        在WHERE子句后面加上GROUP BY子句可以对记录进行分组,保留字GROUP BY后面跟着一个分组字段列表。最简单的情况是FROM子句后面只有一个关系(表),根据分组字段对表中的记录进行分组。SELECT子句中使用的聚集操作符仅用在每个分组上。
        (2)HAVING子句。
        假如记录在分组前按照某种方式加上限制,使得不需要的分组为空,那么可以通过GROUP BY后面跟一个HAVING条件子句实现。
        注意,当记录含有空值时,在任何聚集操作中被忽视。它对求和、求平均值和计数都没有影响,空值不能作为某列的最大值或最小值。例如,COUNT(*)是某个关系中所有元组数目之和,但COUNT(A)却是A属性非空的元组个数之和。
 
        GROUP BY
        GROUP BY指定用来放置输出行的组。如果SELECT子句“目标列表达式”中包含聚合函数,则GROUP BY将计算每组的汇总值。指定GROUP BY时,选择列表中任意非聚合表达式内的所有列都应包含在GROUP BY列表中,或者GROUP BY表达式必须与选择列表表达式完全匹配。
        如果没有GROUP BY子句,则SQL列函数应用程序返回一行数据。当使用GROUP BY时,会对每个组运用函数,所以所返回的行数与分组数相同。
        当使用GROUP BY子句时,SQL将选出的行按照是否符合表达式的值或者是否符合某一列或多列的值进行分组。接下来,SQL处理每一组,从而为每组生成一行结果。在GROUP BY子句中,可以指定一列或多列或者表达式来对行进行分组。在SELECT语句中指定的项具有由行组成的每一组的属性,而不具备表中或视图中单个行的属性。
        例如,EMPLOYEE表有几组行,每一组中的这些行描述了某个特定部门的成员。为了查出每个部门中人员的平均薪水,可以写这样的SQL语句:
        
        生成的结果被分成了几行,每行表示一个部门。
        如果在GROUP BY子句中指定的列为空值,则会生成只有一行的结果,行中数据为空值。也可以将行按照多列或按照表达式进行分组。例如,使用CORPDATA.EMPLOYEE表编写一条查找每个部门男性员工和女性员工平均薪水的SELECT语句。为了实现这一点,可以这样做:
        
 
        GROUP BY子句
        在WHERE子句后面加上GROUP BY子句可以对元组进行分组,保留字GROUP BY后面跟着一个分组属性列表。最简单的情况是FROM子句后面只有一个关系,根据分组属性对它的元组进行分组。SELECT子句中使用的聚集操作符仅用在每个分组上。
        该语句是将SC关系的元组重新组织,并进行分组使得不同学号的元组分别被组织在一起,最后求出各个学生的平均值输出。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有