例说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

执行结果:

例说SQL Server 2008 聚合函数 

说明:

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

 

2 COUNT()函数

返回某列的行数。

例:

SQL查询:

SELECT COUNT(*) FROM tb_Students WHERE age>15

执行结果:

 例说SQL Server 2008 聚合函数

说明:

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

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

 

3 AVG()函数

返回某列的平均值。

例:

SQL查询:

SELECT AVG(age) FROM tb_Students WHERE age>15

执行结果:

例说SQL Server 2008 聚合函数

 

4 MAX()函数

返回某列的最大值。

例:

SQL查询:

SELECT MAX(age) FROM tb_Students WHERE age>15

执行结果:

例说SQL Server 2008 聚合函数 

 

5 MIN()函数

返回某列的最小值。

例:

SQL查询:

SELECT MIN(age) FROM tb_Students WHERE age>15

执行结果:

 例说SQL Server 2008 聚合函数

 

聚合函数与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
执行结果:

例说SQL Server 2008 聚合函数

 

7 聚集不同的值

例:

SQL查询:

SELECT COUNT(DISTINCT teacher) FROM tb_Class

执行结果:

例说SQL Server 2008 聚合函数

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

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

 

 

 

 

 

例说SQL Server 2008 聚合函数,布布扣,bubuko.com

例说SQL Server 2008 聚合函数

上一篇:Tuning SQL 11


下一篇:linux系统之编译安装mysql