GROUP BY子句指定用来放置输出行的组。如果SELECT子句<select list>中包含聚合函数,则GROUP BY将计算每组的汇总值。指定GROUP BY时,选择列表中任意非聚合表达式内的所有列都应包含在GROUP BY列表中,或者GROUP BY表达式必须与选择列表表达式完全匹配。
1.简单分组
按课程编号分组,可查看有哪些课程组别。SQL语句如下:
执行以上SQL语句,查询结果如图4.29所示。
图4.29 按课程编号分组
2.聚合函数
聚合函数对一组值执行计算,并返回单个值。除了COUNT以外,聚合函数都会忽略空值。聚合函数经常与SELECT语句的GROUP BY子句一起使用。
聚合函数只能在以下位置作为表达式使用:
➢SELECT 语句的选择列表(子查询或外部查询);
➢COMPUTE 或 COMPUTE BY 子句;
➢HAVING 子句。
Transact-SQL 提供的常见聚合函数,见表4.4。
表4.4 常用的聚合函数
➢COUNT()
查询学生总人数,SQL语句如下:
执行以上SQL语句,查询结果如图4.30所示。
图4.30 查询学生总人数
查询参加过考试的学生总人数,SQL语句如下:
执行以上SQL语句,查询结果如图4.31所示。
图4.31 查询参加过考试的学生总人数
查询C语言成绩超过90分的学生人数,SQL语句如下:
执行以上SQL语句,查询结果如图4.32所示。
图4.32 查询C语言成绩超过90分的学生人数
➢SUM()、AVG()
查询C语言所有成绩的总分,SQL语句如下:
执行以上SQL语句,查询结果如图4.33所示。(www.xing528.com)
图4.33 查询C语言所有成绩的总分
查询C语言所有成绩的平均分,SQL语句如下:
执行以上SQL语句,查询结果如图4.34所示。
图4.34 查询C语言所有成绩的平均分
➢MAX()、MIN()
查询C语言所有成绩中的最高分,SQL语句如下:
执行以上SQL语句,查询结果如图4.35所示。
图4.35 查询C语言所有成绩中的最高分
查询C语言所有成绩中的最低分,SQL语句如下:
执行以上SQL语句,查询结果如图4.36所示。
图4.36 查询C语言所有成绩中的最低分
3.GROUP和聚合函数结合使用
按课程编号分组,同时统计该组别信息。SQL语句如下:
执行以上SQL语句,查询结果如图4.37所示。
图4.37 按课程编号分组并统计该组别信息
查询每门课程中,成绩在90分以上的学员人数。SQL语句如下:
执行以上SQL语句,查询结果如图4.38所示。
图4.38 查询每门课程中成绩在90分以上的学员人数
若需列出所有组别,则使用ALL,对比上面的结果。SQL语句如下:
执行以上SQL语句,查询结果如图4.39所示。
图4.39 列出所有组别
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。