语法格式为: 聚合函数([ALL|DISTINCT]表达式) 说明:all表示对数值集中所有的值进行聚合函数 运算,distinct表示去除数值集中重复的值,默 认为all。表达式可以是涉及一个或多个列的算术 表达式。 【例3-15】查找成绩表中090406号课程的最高 分和最低分 SELECT MAX(grade'最高分',MIN(grade'最 低分'FROM score WHERE c_id='090406
语法格式为: 聚合函数([ALL|DISTINCT] 表达式) 说明:all表示对数值集中所有的值进行聚合函数 运算,distinct表示去除数值集中重复的值,默 认为all。表达式可以是涉及一个或多个列的算术 表达式。 【例3-15】查找成绩表中090406号课程的最高 分和最低分 SELECT MAX(grade)'最高分',MIN(grade)'最 低分' FROM score WHERE c_id='090406
3-16】计算成绩表中0902011101号学生的 总成绩。 SELECT MAX(grade)'最高分',MIN(grade)'最低 FROM score WHERE s_id='0902011101 【例3-17】计算成绩表中学号为0902011101的 的平均成绩 SELECT AVG(grade'平均分'FROM score VHERE s id='0902011101' 【例3-18】统计成绩表中每个学生的总分和平均 分,把查询结果按总分的降序排列输出
【例3-16】计算成绩表中0902011101号学生的 总成绩。 SELECT MAX(grade)'最高分',MIN(grade)'最低 分' FROM score WHERE s_id='0902011101' 【例3-17】计算成绩表中学号为0902011101的 的平均成绩 SELECT AVG(grade)'平均分' FROM score WHERE s_id='0902011101' 【例3-18】统计成绩表中每个学生的总分和平均 分,把查询结果按总分的降序排列输出
S ELECT s_id,SUM(grade'总分', AVG(grade)'平均分 FROM score GROUP BY s id ORDER BY总分DESC 【例3-19】统计学生表中学生的总数。 SELECT COUNT(sid)'学生总数 FROM student 提示:如果count函数使用列名作为参数,则只统 计内容不为空的行的数目。如果使用“*”作为参 数,则统计所有行的数目(包括值为空的行)
SELECT s_id,SUM(grade)'总分', AVG(grade)'平均分' FROM score GROUP BY s_id ORDER BY 总分 DESC 【例3-19】统计学生表中学生的总数。 SELECT COUNT(s_id)'学生总数' FROM student 提示:如果count函数使用列名作为参数,则只统 计内容不为空的行的数目。如果使用“*”作为参 数,则统计所有行的数目(包括值为空的行)
3.1.5对查询结果进行分组 聚合函数只返回单个汇总,而使用group by子句可以进行分组汇总,为结果集中的每 一行产生一个汇总值。 group by-子句的基本格式: SELECT<[字段列表],[聚合函数(字段名]> FROM<表名> GROUP BY<字段列表>
3.1.5 对查询结果进行分组 聚合函数只返回单个汇总,而使用group by子句可以进行分组汇总,为结果集中的每 一行产生一个汇总值。 group by子句的基本格式: SELECT <[字段列表],[聚合函数(字段名)]> FROM <表名> GROUP BY <字段列表>
说明: 若在select-子句后存在字段列表,则其字 段列表与group by子句后的字段列表必须 致。 (2)在查询语句select子句后面的字段列表中, 如果既有字段名,又有聚合函数, 那么字段名要么被包含在聚合函数中,要么出 现在group by-子句中。 (3)如果在group by子句后面有多个字段,那 么先按第一个字段分组,若第一个字段值相同, 再按第二个字段分组,以此类推
说明: (1) 若在select子句后存在字段列表,则其字 段列表与group by子句后的字段列表必须一 致。 (2) 在查询语句select子句后面的字段列表中, 如果既有字段名,又有聚合函数, 那么字段名要么被包含在聚合函数中,要么出 现在group by子句中。 (3) 如果在group by子句后面有多个字段,那 么先按第一个字段分组,若第一个字段值相同, 再按第二个字段分组,以此类推