SQL+Server+2005范例代码查询辞典.doc

  1. 1、本文档共180页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 SQL Server函数 在本章中,我会演示如何在T-SQL代码中使用SQL Server 2005内建函数。不要把SQL Server 2005内建函数和第11章介绍的用户定义函数混淆,它能让我们实现聚合、数学运算、字符串操作、行排序等等。 8.1 聚合函数 聚合函数用于对一个或多个值进行计算,最后得出一个值。经常使用的聚合函数的一个例子是SUM,它用来返回一组数字值的总值。表8-1列出了SQL Server 2005提供的一些经常使用的聚合函数。 表8-1 聚合函数 函 数 名 描  述 AVG AVG聚合函数计算一个组中非NULL值的平均值 COUNT COUNT聚合函数返回一个显示组中行数的整数值 COUNT_BIG 和COUNT功能一样,只是COUNT_BIG返回bigint数据类型值 MAX MAX聚合函数返回一组非NULL值中的最大值 MIN MIN聚合函数返回一组非NULL值中的最小值 SUM SUM聚合函数返回一个表达式中所有非NULL值的总和 STDEV STDEV函数根据数据母体的样本返回由表达式提供的所有值的标准差 STDEVP STDEVP函数也返回由表达式提供的所有值的标准差,只是它计算整个数据母体 VAR VAR函数根据数据母体的样本返回由表达式提供的值的方差 VARP VARP函数也返回表达式整个数据母体提供的值的方差 接下来的几个技巧会演示这些聚合函数。 8.1.1 返回平均值 AVG聚合函数计算组中非NULL值的平均值。 第一个示例演示如何使用AVG聚合函数返回组中非NULL值的平均值: 产品平均等级 ? 这个查询返回: 第二个示例演示对StrandardCost列的DISTINCT值取平均——也就是说只有唯一的StandardCost值才会被平均: 对DISTINCT StandardCost求平均 ? 这个查询返回: 解析 在这个技巧中,第一个示例返回由ProductID分组的平均产品等级。 第二个示例对DISTINCT StandardCost进行平均——也就是说只有唯一的StandardCost才会被平均。没有DISTINCT关键字,AVG聚合函数默认的行为会对包括重复值在内的所有值取平均。 8.1.2 返回行总数 COUNT聚合函数返回一个显示组中行的总数的整数数据类型。 这个示例演示了使用COUNT聚合函数来返回组中行的总数: 这个查询返回如下的(部分)结果: 如果在COUNT函数圆括号内包含DISTINCT关键字,你会得到那列的不重复值的总数。例如: 这个查询返回: 解析 在本技巧的第一个示例中,计算了每个货架上的货物数。COUNT是唯一一个不忽略NULL值的聚合函数,如果ProductID是NULL的话,它还是会在总数中包括。第二个示例演示了计算Production. ProductInventory表中不重复的货架总数。 如果你需要计算一个比整数数据类型所能存放的更大的值,可以使用COUNT_BIG聚合函数,它返回bigint数据类型的值。 8.1.3 找出表达式中的最小和最大值 MAX聚合函数返回组中非NULL值的最大值而MIN聚合函数返回最小值。MIN和MAX能用于数字、字符和datetime列。字符数据类型的最小和最大值由ASCII字母排序决定。datetime值的MIN和MAX基于最早的日期和最近的日期。 在本例中,我会演示如何使用MIN和MAX函数来找出Production.ProductReview表的Rating数字列中的最小和最大值: 这个查询返回: 解析 这个技巧演示获取Production.ProductReview表中Rating值的最小和最大值。和其他聚合函数一样,如果在SELECT子句中引用非聚合列,那么它们必须包含在GROUP BY子句中。 8.1.4 返回值的和 SUM聚合函数返回表达式中非NULL值的总和。 这个示例演示了如何使用SUM聚合函数来返回每个AccountNumber中TotalDue列值的总和: 这个查询返回下面的部分结果: 解析 在这个技巧中,根据AccountNumber来计算TotalDue列的和。因为AccountNumber本身不参与聚合而是包含在GROUP BY子句中。它也包含在ORDER BY子句中以根据分组的结果进行排序。 8.1.5 使用统计聚合函数 在这个技巧中,我会演示使用统计函数VAR、VARP、STDEV和STDEVP。 VAR函数根据数据母体的样本返回由表达式提供的值的方差(VARP函数也返回表达式整个数据母体提供的值的方差)。 第一个示例返回Sales.SalesOrderHeader表中所有行的TaxAmt值的方差: 这个查询返回: STDEV函数根据数据母体

您可能关注的文档

文档评论(0)

中华书局 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档