首页 软件下载 产品购买 客户服务 软件定做 加盟 留言 用户 技术文档 新闻
2018年8月15日 星期三   您现在位于: 首页 →  技术文档 → SQL语言(SQL教程)
中级SQL:集合函数
2003年10月10日  作者:  宏达管理软件下载定制开发服务在线  浏览选项:    本文已被浏览 6234 次

到现在为止,你只学习了如何根据特定的条件从表中取出一条或多条记录。但是,假如你想对一个表中的记录进行数据统计。例如,如果你想统计存储在表中的一次民意测验的投票结果。或者你想知道一个访问者在你的站点上平均花费了多少时间。要对表中的任何类型的数据进行统计,都需要使用集合函数。

Microsoft SQL 支持五种类型的集合函数。你可以统计记录数目,平均值,最小值,最大值,或者求和。当你使用一个集合函数时,它只返回一个数,该数值代表这几个统计值之一。

 注意:

要在你的ASP网页中使用集合函数的返回值,你需要给该值起一个名字。要作到这一点,你可以在SELECT语句中,在集合函数后面紧跟一个字段名,如下例所示:

 

SELECT AVG(vote) the_average FROM opinion

 

在这个例子中,vote的平均值被命名为 the_average。现在你可以在你的ASP网页的数据库方法中使用这个名字。

 

统计字段值的数目

函数COUNT()也许是最有用的集合函数。你可以用这个函数来统计一个表中有多少条记录。这里有一个例子:

 

SELECT COUNT(au_lname) FROM authors

 

这个例子计算表authors中名字(last name)的数目。如果相同的名字出现了不止一次,该名字将会被计算多次。如果你想知道名字为某个特定值的作者有多少个,你可以使用WHERE子句,如下例所示:

 

SELECT COUNT(au_lname) FROM authors WHERE au_lname=Ringer

 

这个例子返回名字为Ringer的作者的数目。如果这个名字在表authors中出现了两次,则次函数的返回值是2。

假如你想知道有不同名字的作者的数目。你可以通过使用关键字DISTINCT来得到该数目。如下例所示:

 

SELECT COUNT(DISTINCT au_lname) FROM authors

 

如果名字Ringer出现了不止一次,它将只被计算一次。关键字DISTINCT 决定了只有互不相同的值才被计算。

通常,当你使用COUNT()时,字段中的空值将被忽略。一般来说,这正是你所希望的。但是,如果你仅仅想知道表中记录的数目,那么你需要计算表中所有的记录─不管它是否包含空值。下面是一个如何做到这一点的例子:

 

SELECT COUNT(*) FROM authors

 

注意函数COUNT()没有指定任何字段。这个语句计算表中所有记录所数目,包括有空值的记录。因此,你不需要指定要被计算的特定字段。

函数COUNT()在很多不同情况下是有用的。例如,假设有一个表保存了对你站点的质量进行民意调查的结果。这个表有一个名为vote的字段,该字段的值要么是0,要么是1。0表示反对票,1表示赞成票。要确定赞成票的数量,你可以所有下面的SELECT 语句:

 

SELECT COUNT(vote) FROM opinion_table WHERE vote=1

 

计算字段的平均值

使用函数COUNT(),你可以统计一个字段中有多少个值。但有时你需要计算这些值的平均值。使用函数AVG(),你可以返回一个字段中所有值的平均值。

假如你对你的站点进行一次较为复杂的民意调查。访问者可以在1到10之间投票,表示他们喜欢你站点的程度。你把投票结果保存在名为vote的INT型字段中。要计算你的用户投票的平均值,你需要使用函数AVG():

 

SELECT AVG(vote) FROM opinion

 

这个SELECT语句的返回值代表用户对你站点的平均喜欢程度。函数AVG()只能对数值型字段使用。这个函数在计算平均值时也忽略空值。

 

计算字段值的和

假设你的站点被用来出售卡片,已经运行了两个月,是该计算赚了多少钱的时候了。假设有一个名为orders的表用来记录所有访问者的定购信息。要计算所有定购量的总和,你可以使用函数SUM():

 

SELECT SUM(purchase_amount) FROM orders

 

函数SUM()的返回值代表字段purchase_amount中所有值的平均值。字段purchase_amount的数据类型也许是MONEY型,但你也可以对其它数值型字段使用函数SUM()。

 

返回最大值或最小值

再一次假设你有一个表用来保存对你的站点进行民意调查的结果。访问者可以选择从1到10 的值来表示他们对你站点的评价。如果你想知道访问者对你站点的最高评价,你可以使用如下的语句:

 

SELECT MAX(vote) FROM opinion

 

你也许希望有人对你的站点给予了很高的评价。通过函数MAX(),你可以知道一个数值型字段的所有值中的最大值。如果有人对你的站点投了数字10,函数MAX()将返回该值。

另一方面,假如你想知道访问者对你站点的的最低评价,你可以使用函数MIN(),如下例所示:

 

SELECT MIN(vote) FROM opinion

 

函数MIN()返回一个字段的所有值中的最小值。如果字段是空的,函数MIN()返回空值。

 

 发布人:admin
 [ → 我要发表文章 ]
上篇文章:中级SQL:SQL核心语句
下篇文章:中级SQL:其它常用的SQL表达式,函数,和过程(1)
→ 主题所属分类:  SQL语言 → SQL教程 → 『关闭窗口』
 热门文章
 
 SQL基础:创建新表 (104835)
 最详细的SQL 参考资料下载!! (27236)
 如何利用数据库信息开发平台制作信息管理系统 (11392)
 《数据库信息管理开发平台》疑难解答 (10324)
 SQL基础:使用SQL从表中取记录 (9127)
 随心所欲设计自己的信息管理系统 (8622)
 中级SQL:其它常用的SQL表达式,函数,和过程(2) (8521)
 菜鸟也可做软件 (8505)
 数据库开发平台的问题 (8347)
 中级SQL:SQL核心语句 (8057)
 最近更新
 
 OraCle的常见问题和技术指导 (1月10日)
 最新推出《箱包材料批发管理系统》软件,敬请查看... (11月25日)
 最新推出《会展物流辅助管理系统》软件,敬请下载... (11月3日)
 最新推出《宏达劳教人员管理系统》软件,敬请查看... (10月31日)
 最新推出《宏达图书音像进销存管理系统》软件,敬... (10月31日)
 最新升级《宏达计件工资管理系统》软件,敬请查看... (10月22日)
 最新升级《宏达代理人保险管理系统》软件,敬请查... (10月22日)
 最新升级《宏达车辆配件管理系统》软件,敬请查看... (10月22日)
 最新推出《宏达制药行业销售管理系统》软件,敬请... (10月22日)
 最新推出《宏达机动车整车出厂合格证管理系统》软... (10月22日)
 文章搜索
 
搜索选项:            
关于我们 - 站内短信 - 与我在线 - 管理
Copyright © 2003-2008 宏达管理软件下载定制开发服务在线 All Rights Reserved(鲁ICP备05057070号)

鲁公网安备 37150202000143号

 当前有 242 人在线