当前位置:   article > 正文

分组聚集查询-GROUP BY子句_子查询怎么group by

子查询怎么group by

一、GROUP BY子句位置

SELECT 【ALL|DISTINCT】<目标列表达式1>【,<目标列表达式2>,...】

FROM <表名或视图名1>【,<表名或视图名2>,...】

【WHERE <元组选择条件表达式>】

【GROUP BY <属性列名1>【,<属性列2>,...】【HAVING <组选择条件表达式>】】

【ORDER BY <目标列名1>【ASC|DESC】【,<目标列名2>【ASC|DESC】,...】】

二、GROUP BY子句格式

【GROUP BY <属性列名1>【,<属性列2>,...】【HAVING <组选择条件表达式>】】

1、依次按属性列名1,属性列名2,...的值进行分组,属性列的值都相同的元组作为一个分组

2、HAVING子句会对分组进行筛选

3、聚集函数将以每个分组为单位作为计算对象

三、GROUP BY子句使用案例

1、例1:查询选修了课程的学生学号和平均成绩

  1. select sNo,平均成绩=avg(grade)
  2. from sC
  3. group by sNo

2、例2:查询平均成绩在96分以上的学生学号和平均成绩

  1. select sNo,平均成绩=avg(grade)
  2. from sC
  3. group by sNo having avg(grade)>96

注意!!!!!在SELECT子句显示除聚集属性以外的属性和在HAVING子句中使用到的除聚集属性以外的属性必须是出现在GROUP BY子句中的属性

3、例3:查询男生人数超过2名的院系的名称

  1. select sD
  2. from s
  3. where sex='男'
  4. group by sD having count(*)>2

四、SELECT子句、WHERE子句、GROUP BY子句和HAVING短语的作用对象和执行顺序

1、WHERE子句对FROM子句中所指明的数据对象(表/视图)筛选出符合条件的元组

2、GOUP BY子句对WHERE子句筛选好的元组进行分组,产生初始分组

3、HAVING短语对GROUP BY子句产生的初始分组进行筛选,产生最终分组

4、SELECT子句对HAVING短语产生的最终分组产生查询结果,即结果表

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/959622
推荐阅读
相关标签
  

闽ICP备14008679号