首页 理论教育 数据分组:实战教程,按专业分组查询结果

数据分组:实战教程,按专业分组查询结果

时间:2023-11-22 理论教育 版权反馈
【摘要】:例如,根据学生所学的专业对XSB表中的所有行分组,结果是每个专业的学生成为一组。图5.9 分组查询结果求PXSCJ数据库中各专业的学生数。select 字段列表from 数据源where条件表达式group by 分组字段 having条件表达式例如,查找PXSCJ数据库中平均成绩在85分以上的学生,就是在CJB表上按学号分组后筛选出符合平均成绩大于等于85的学生。

数据分组:实战教程,按专业分组查询结果

1.GROUP BY子句

GROUP BY子句主要用于根据字段对行进行分组。例如,根据学生所学的专业对XSB表中的所有行分组,结果是每个专业的学生成为一组。GROUP BY子句的语法格式如下:

查询结果如图5.9所示。

图5.9 分组查询结果

【例5.13】求PXSCJ数据库中各专业的学生数。

SELECT 专业,COUNT(*)AS '学生数'

FROM XSB

GROUP BY 专业;

查询结果如图5.10所示。

图5.10 分组查询中使用count函数

2.HAVING子句

使用HAVING子句的目的与WHERE子句类似,不同的是WHERE子句用在FROM子句之后选择行,而HAVING子句用在GROUP BY子句后选择行。(www.xing528.com)

下面select语句的语法格式中,select语句的执行过程为:首先使用where子句对结果集进行过滤筛选,接着group by子句分组where子句的输出,最后having子句从分组的结果中再进行筛选。

select 字段列表

from 数据源

where条件表达式

group by 分组字段 having条件表达式

例如,查找PXSCJ数据库中平均成绩在85分以上的学生,就是在CJB表上按学号分组后筛选出符合平均成绩大于等于85的学生。

【例5.14】查找平均成绩在85分以上的学生的学号和平均成绩。

SELECT 学号,AVG(成绩)AS '平均成绩'

FROM CJB

GROUP BY 学号

HAVING AVG(成绩)>=85;

查询结果如图5.11所示。

图5.11 用having分组筛选

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈