您的位置:首页 > 其它

懒人摘抄(内容转自CSDN资源中教程)-数据查询04-使用聚合函数

2007-09-19 09:48 309 查看

使用聚合函数

聚合函数用于实现数据统计等功能,常月的聚合函数如表5.1所列。
表5.1 聚合函数
函数名
功能
AVG
计算一个数值型列的平均值
COUNT
计算指定列中选择的项数,COUNT(*)统计查询输出的行数
MIN
计算指定列中的最小值
MAX
计算指定列中的最大值
SUM
计算指定列中的数值总和
STDEV
计算统计标准偏差
VAR
统计方差
【例5.9】查询“95031”班的学生人数。
SELECT COUNT(*)AS '95031班人数'
FROM student
WHERE class='95031'
本例执行结果如下:
95031班人数
-----------
3
【例5.10】查询score表中的最高分的学生学号和课程号。
SELECT no AS '学号',cno AS '课程号', MAX(degree)AS '最高分' ;
FROM score
本例执行结果如下:
学号 课程号 最高分
-----------------------------
108 6-166 92
-----------------------------
【例5.11】查询编号为“3-105”的课程的平均分。
SELECT AVG(degree)as '课程平均分' ;
FROM score WHERE cno='3-105'
本例执行结果如下:
课程平均分
------------
81.5
------------
上述例子中使用了聚合函数,我们还可以加上GROUP BY子句,通常一个聚合函数的范围是满足WHERE子句指定的条件的所有记录。在加上GROUP BY子句后,SQL命令把查询结果按指定列分成集合组。当一个聚合函数和一个GROUP BY子句一起使用时,聚合函数的范围变成为每组的所有记录。换句话说,一个结果是由组成一组的每个记录集合产生的。
使用HAVING子句可以对这些组进一步加以控制。用这一子句定义这些组所必须满足的条件,以便将其包含在结果中。
当WHERE子句,GROUP BY子句和HAVING子句同时出现在一个查询中时,SQL的执行顺序如下:
(1) 执行WHERE子句,从表中选取行。
(2) 由GROUP BY 对选取的行进行分组。
(3) 执行聚合函数。
(4) 执行HAVING子句选取满足条件的分组。
【例5.12】查询score表中至少有5名学生选修的并以3开头的课程号的平均分数。
SELECT cno,AVG(degree)AS '平均分'
FROM score
WHERE cno LIKE '3%'
GROUP BY cno
HAVING COUNT(*)>5
本例执行结果如下:
cno 平均分
-------- ---------------
3-105 81.500000
【例5.13】查询最低分大于70,最高分小于90的NO列。
SELECT sno
FROM score
GROUP BY sno
HAVING MIN(degree)>70 and MAX(degree)<90
本例执行结果如下:
sno
-----
105
108
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐