例说SQL Server 2008 聚合函数

创建tb_Students表并插入3条测试数据。

CREATE TABLE tb_Students(
id int NOT NULL IDENTITY,
name NVARCHAR(16) NOT NULL,
age int NOT NULL,
PRIMARY KEY(id))
INSERT INTO tb_Students(name,age) 
VALUES(‘tiana‘,15),(‘yardi‘,20),(‘zhangyun‘,18)


1 SUM()函数

返回某列值的和。

例:

SQL查询:

SELECT SUM(age) FROM tb_Students WHERE age>15

执行结果:

 

说明:

返回年龄大于15的学生的年龄之和:120+18=38

 

2 COUNT()函数

返回某列的行数。

例:

SQL查询:

SELECT COUNT(*) FROM tb_Students WHERE age>15

执行结果:

 

说明:

返回年龄大于15的学生记录的行数。

当然这里查询中可以使用“COUNT(id)”,“COUNT(name)”,“COUNT(age)”,结果一致。

 

3 AVG()函数

返回某列的平均值。

例:

SQL查询:

SELECT AVG(age) FROM tb_Students WHERE age>15

执行结果:

 

4 MAX()函数

返回某列的最大值。

例:

SQL查询:

SELECT MAX(age) FROM tb_Students WHERE age>15

执行结果:

 

 

5 MIN()函数

返回某列的最小值。

例:

SQL查询:

SELECT MIN(age) FROM tb_Students WHERE age>15

执行结果:

 

 

聚合函数与GROUP BY子句一起使用

SUM()COUNT()AVG()MAX()MIN()函数与GROUP BY子句一起使用时,可以用来计算每个分组的总和,记录总数,平均值,最大值,最小值。

例:

创建表tb_Class并插入8条测试数据。

SQL查询:

CREATE TABLE tb_Class(
classid int NOT NULL IDENTITY, 
classname NVARCHAR(16) NOT NULL,
students int NOT NULL,
teacher	NVARCHAR(16) NOT NULL,
PRIMARY KEY(classid))
INSERT INTO tb_Class(classname,students,teacher)
VALUES
(‘1班‘,25,‘yl‘),(‘2班‘,18,‘wsp‘),(‘3班‘,24,‘yl‘),(‘4班‘,25,‘zhy‘), 
(‘5班‘,22,‘wsp‘),(‘6班‘,25,‘yl‘),(‘7班‘,20,‘zhy‘), (‘8班‘,22,‘wsp‘)
SELECT SUM(students) FROM tb_Class GROUP BY teacher
SELECT COUNT(students) FROM tb_Class GROUP BY teacher
SELECT AVG(students) FROM tb_Class GROUP BY teacher
SELECT MAX(students) FROM tb_Class GROUP BY teacher
SELECT MIN(students) FROM tb_Class GROUP BY teacher
执行结果:


 

7 聚集不同的值

例:

SQL查询:

SELECT COUNT(DISTINCT teacher) FROM tb_Class

执行结果:

说明: 聚集函数与DISTINCT子句一起使用时,可以去除掉重复的记录后再使用聚集函数进行运算。

实例中的查询查询出班级表中教师的数目。

 

 

 

 

 

例说SQL Server 2008 聚合函数,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。