设为首页 加入收藏

TOP

例说SQLServer2008聚合函数
2014-11-23 22:26:25 来源: 作者: 【 】 浏览:11
Tags:例说 SQLServer2008 聚合 函数

创建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

执行结果:

\

6 聚合函数与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子句一起使用时,可以去除掉重复的记录后再使用聚集函数进行运算。

实例中的查询查询出班级表中教师的数目。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQLServer中的存储过程 下一篇SQLServre中的控制流语句

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: