以 teacher 表为例,先查所有 teacher 信息:
可以使用 MIN() 函数对结果集取年龄最小值的数据:
执行结果如下图:
以 student 表为例,先查看所有 student 信息:
查询结果如下图:
可以使用 MAX() 函数对结果集取年龄最大值的数据:
执行结果如下图:
以 student_course、course、student 表内连接查询为例:
查询结果如下图:
使用 AVG 函数取分组数据平均年龄:
执行结果如下图 :
可以使用 HAVING 对上述结果筛选,例如选出选课学生平均年龄大于 20 的课程数据:
执行结果如下图:
本小节介绍了如何使用 MIN、MAX 两种聚合函数对查询结果集进行筛选,还介绍了如何在 GROUP BY中分组使用聚合函数,并且使用 HAVING 后面的条件对分组数据进行筛选,需要注意的是聚合函数产生的数据列最好重命名,这是因为后端程序语言在处理这些数据时需要规范的字段名,例如:
查询结果如下图:
SELECT category_Sn,isnull(count,0) FROM category left join (SELECT count(*) as count,category_Sn FROM [article] group by category_Sn) AS [article] on category.[category_Sn]=article.[category_Sn]一、COUNT()函数
COUNT()函数进行计数。可利用COUNT()函数确定表中行的数目或者符合特定条件的行的数目。
COUNT()有两种使用方式:
1.使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。
2.使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。
例如 SELECT COUNT(*) AS num_test FROM test
此语句对表test所有行进行计数,返回表的总行数,不管行中各列有什么值。
例如 SELECT COUNT(school) FROM test
此语句只对school列中有值的行进行计数,忽略null行。
二、MAX()函数
MAX()函数返回指定列中的最大值。MAX()要求指定列名。
例如SELECT MAX(age) FROM test
此语句返回表test中age的最大值。
注:MAX()函数忽略值为NULL的行。
代码如下:
select a.xm,max(b.gz) from md a,gz bwhere a.id=b.id
如果还有其它条件,你再详细写明。佬第一个人的姓名,最高的是第5个人,看不懂你的意思。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)