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

来源:互联网 发布:软件开发的成功 编辑:程序博客网 时间:2024/06/14 05:27

使用聚合函数

   聚合函数用于实现数据统计等功能,常月的聚合函数如表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,最高分小于90NO列。

SELECT sno

FROM score

GROUP BY sno

HAVING MIN(degree)>70 and MAX(degree)<90

本例执行结果如下:

sno  

-----

105 

108 

 
原创粉丝点击