首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>数据库>SQL数据库>10个新技巧之SQL进行排序 分组 统计
10个新技巧之SQL进行排序 分组 统计
来源: 发布时间:2007-09-04 发布人: 浏览: 人次   字体: [ ]  

7.使用聚合函数统计分组数据

 

分组数据可以帮助我们分析数据,但是有时我们可能需要更多的信息而不仅仅是分组。你可以使用聚合函数来统计分组数据。例如,下面的语句显示每批订购单的总价钱。

 

SELECT OrderID, Sum(Cost * Quantity) AS OrderTotal 
FROM Orders GROUP BY OrderID

 

 

 

对于其它的分组来说,SELECT和GROUP BY列必须匹配。而SELECT语句包含聚合函数时这一规则是一个例外。 

 

8.统计聚合数据

 

你可以继续统计数据为每个分组显示一个分类统计。SQL的ROLLUP操作符可以为每个分组显示一个额外的分类统计。这个分类统计是使用聚合函数计算每个分组中的所有记录得到的结果。下面的语句为每个分组计算OrderTotal:

 

SELECT Customer, OrderNumber, Sum(Cost * Quantity) 
AS OrderTotal FROM Orders GROUP BY Customer, 
OrderNumber WITH ROLLUP

 

 

 

对于有两个分别为20和25 OderTotal值的分组,ROLLUP显示一个OrderTotal值45。ROLLUP结果中的第一条记录是唯一的,因为它是计算所有分组记录,这个值是整个记录集的总值。

 

ROLLUP在聚合函数中不支持 DISTINCT,也不支持GROUP BY ALL语句。

 

9.统计每个列

 

CUBE操作符比ROLLUP更进一步,它返回每个分组中重复值的个数。它的结果和ROLLUP相同,但是对每位客户的每一列CUBE包含一个额外的记录。下面的语句显示每个分组的统计和额外每位客户的统计。

 

SELECT Customer, OrderNumber, Sum(Cost * Quantity) 
AS OrderTotal FROM Orders GROUP BY Customer, 
OrderNumber WITH CUBE

 

 

 

CUBE可以给最综合的统计。它不仅完成聚合和ROLLUP的功能,还可以计算定义分组的其它列,换句话说,CUBE统计每个可能的列组合。

 

CUBE不支持GROUP BY ALL语句。

 

10:对统计结果排序

 

当CUBE的结果令人迷惑时(它经常是这样),可以添加一个GROUPING函数,如下所示:

 

SELECT GROUPING(Customer), OrderNumber, 
Sum(Cost * Quantity) AS OrderTotal FROM Orders GROUP 
BY Customer, OrderNumber WITH CUBE

 

结果中每行包含两个额外的值:

 

值1表示左边的值是一个统计值,是ROLLUP或CUBE的操作符。

 

值0表示左边的值是一条由最初的GROUP BY语句产生的详细记录。


共2页: 上一页 [1] 2 下一页
相 关 文 章   发布商链接
·SQL Server开发人员应聘常遇问题汇总
·如何在SQL Server2000中处理半个汉字
·SQLServe2005区域配置和安全工具
·轻松掌握SQL Server数据同步技术
·运用SQL Server安全模型来保护数据
·解决SQL Server占用内存的问题
·轻松掌握SQL Server数据库文件恢复技...
·SQL SERVER 数据类型详解
·了一了SQL Server2008的新特点
·dtproperties表小解
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·SQL数据库实现用SQL语句根据...
·SqlServer 2005 Express的配...
·sql排序规则的简介及其修改操
·如何用sql语句为字段添加和去
·sqlserver数据库日志文件压缩
·sql语句获得数据库某表字段的
·ISNUMERIC函数介绍及其要注意
·SQLServer2005导入xml文件实...
·SQL Server2005中删除表中重...
·如何手工启动SQLServer的全文
·sql删除数据库中的所有表语句
·SqlServr利用触发器来控制某...
·SQLServer常用日期格式转换方
·用sql实现查询重复记录的代码
·SQLServer2005分解导入xml文...
热 门 文 章
·图解SQL2008安装向导的使用
·实现Excel数据导入到SQL2005...
·SQLServer常用日期格式转换方...
·MS sql安装时“无法在COM+目...
·sql语句联合删除多个表技巧
·sql删除数据库中的所有表语句
·Sql Server端口连接的问题
·如何在SQL Server中得到自动...
·sql排序规则的简介及其修改操...
·SQL Server2005中删除表中重...
·分析SQL2005最新高效分页方法
·小解sqlServer中临时表及表变...
·用sql实现查询重复记录的代码
·MS SQL2005无法远程连接问题...
·如何修改sqlserver数据库名称
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .