教你轻松掌握常用的子句、关键词和函数(3)

作者:yashi 时间:2009-01-19 13:34:00 

AVG

AVG返回某列所有字段的平均值,该列必须是数字数据类型。该函数用列的名字作为其参数,如果列字段数据类型是非数字类型的则函数返回“0”。SELECT AVG(net_amount) FROM Sales;

你可以结合子句限制该函数的应用范围。

SELECT AVG(net_amount) FROM Sales WHERE company LIKE ‘獵D Co%’;
 
就象所有聚集函数一样,ORDER BY语句将被忽略。

SUM

SUM的工作方式和AVG差不多,只不过该函数返回结果集合中所有字段值的和。

SELECT SUM(net_amount) FROM Sales WHERE net_amount > 100;
 
AVG、SUM、MIN和MAX函数在没有指定列的情况下都会返回错误,所以你不能使用“*”通配符。

MIN

MIN返回指定列中最小的非空值。如果指定列是数字数据类型则结果将是最小的数字。如果它是一种字符串数据类型则函数将返回按字母表顺序出现的第1个值。

SELECT MIN(net_amount) FROM Sales
WHERE last_name = “Smith”;
SELECT MIN(last_name) FROM Sales;
 
MAX

MAX的工作方式和MIN函数一样,只不过该函数返回最大的非空值。该函数也可以用于字符串或者数字列。

SELECT MAX(net_amount) FROM Sales;
SELECT MAX(company) FROM Sales WHERE net_amount > 100;
 
MAX函数有时还用在包含自动递增键字段的列上确定下一条目的键ID。除非你正在运行一个非公开的数据库,否则在使用这一信息插入下一条目时务必谨慎,以防其他用户先你执行数据操作。

GROUP BY 令函数更有用

虽然以上提到的所有这些函数都能提供相当有用的信息,但是,如果有GROUP BY子句帮忙的话更能让你在列的字段子集中应用这些函数。不要对你的Sales表中每一家公司一次又一次地执行MAX函数查询——你完全可以带GROUP BY子句获得同样的结果:

SELECT company, MAX(net_amount) FROM Sales GROUP BY company;

这样做可以获得每家公司net_amount的的最大值。在选择多列名的时候也可以采用该语句,你还可以用多列来对函数结果分组。

下面的例子演示了以上各种方式。首先,包括GROUP BY子句可以令你指定要显示的其他列。然而,你得知道这个例子将返回在组中遇到的第1个last_name值;Sum( net_amount )将显示全部公司的结果而不仅仅针对匹配姓氏的数据行。这是因为,我们只使用了Company字段来定义我们的组。

SELECT company, last_name,
SUM(net_amount) FROM Sales GROUP BY company;
 
在上面的例子中,last_name列实际上并没有提供什么有用的信息,但这样做是为了在下一个例子中要用到的功能做准备。你可以创建多列定义的组。这样就可以在结果集合中产生针对特定行的函数结果,而结果集合则是由所有指定的GROUP BY列联合起来创建的:

SELECT company, AVG(net_amount), last_name FROM Sales GROUP BY company, last_name;

上面的例子给每家公司中每一姓氏给出了平均的net_amount。你列出GROUP BY列的顺序控制着结果的排序,但是实际的函数值结果是一样的。

标签:
0
投稿

猜你喜欢

  • 怎么检测到点击图片的左右位置 像QQ空间那样

    2008-10-04 10:45:00
  • 一个拖动层和Onmouse自动下拉效果

    2007-10-08 21:25:00
  • Msxml2.XMLHTTP Microsoft.XMLHTTP new XMLHttpRequest用法

    2010-03-30 09:43:00
  • 教你轻松了解MySQL数据库中的结果字符串

    2009-02-23 17:29:00
  • 了解CSS的查找匹配原理,让CSS更简洁、高效

    2010-06-08 13:36:00
  • 给在DreamWeaver编写CSS的人一些习惯建议

    2007-12-25 12:10:00
  • 像懒人一样去设计

    2009-04-23 12:43:00
  • ASP(JScript)构建SQL语句“类”

    2008-04-30 07:12:00
  • 实例讲解Oracle到SQL Server主键迁移

    2009-03-25 13:30:00
  • Mootools 1.2教程(11)——Fx.Morph、Fx选项和Fx事件

    2008-12-04 16:03:00
  • 实现asp长文章自动分页插件

    2011-02-26 13:51:00
  • 如何让12px以下的文字最佳显示

    2008-01-24 18:39:00
  • jQuery性能优化指南[译]

    2009-05-12 11:54:00
  • Typecho插件实现添加文章目录的方法详解

    2023-05-25 07:19:04
  • sqlserver关于分页存储过程的优化【让数据库按我们的意思执行查询计划】

    2011-09-30 11:09:37
  • 去掉CSS赘余代码,CSS可以更简洁

    2008-11-05 13:07:00
  • XMLHTTP获取web造访头信息和网页代码

    2010-04-01 14:37:00
  • 国际上十四个优秀网页设计审核站

    2007-09-30 20:18:00
  • asp HTTP_X_FORWARDED_FOR和REMOTE_ADDR

    2010-07-02 12:33:00
  • MSSQL存储过程解秘过程全析

    2010-07-05 08:49:00
  • asp之家 网络编程 m.aspxhome.com