拼吾爱程序人生

首页 » 数据库编程 » SQL Server » Sql Server2005 Transact-SQL 学习总结之-窗口函数(OVER)
cobra - 2008-8-26 12:53:00
1.简介:
SQL Server 2005中的窗口函数帮助你迅速查看不同级别的聚合,通过它可以非常方便地累计总数、移动平均值、以及执行其它计算。
窗口函数功能非常强大,使用起来也十分容易。可以使用这个技巧立即得到大量统计值。
窗口是用户指定的一组行。 开窗函数计算从窗口派生的结果集中各行的值。

2.适用范围:
排名开窗函数和聚合开窗函数.
也就是说窗口函数是结合排名开窗函数或者聚合开窗函数一起使用
OVER子句前面必须是排名函数或者是聚合函数

3.例题:

Code


现要求显示汇总总数,每当所占比例,分组汇总数,每单在各组所占比例,要求格式如下:

OrderID OrderQty 汇总    每单比例 分组汇总 每单在各组比例
1            2.00    29.20        0.0685      6.00          0.3333
1            1.00    29.20        0.0342      6.00          0.1667
1            3.00    29.20        0.1027      6.00          0.5000
2            6.00    29.20        0.2055      7.10          0.8451
2            1.10    29.20        0.0377      7.10          0.1549
3            8.00    29.20        0.2740      16.10        0.4969
3            1.10    29.20        0.0377      16.10        0.0683
3            7.00    29.20        0.2397      16.10        0.4348

Code


窗口函数是sql2005新增加的,下面我们看看在sql2000里面怎么实现上述的结果:
sql2000的实现步骤较麻烦,先计算出总数,再分组计算汇总,最后连接得到结果

Code


上面演示的都是窗口函数与聚合开窗函数的使用,它与排名开窗函数请看下面例题:

Code


与排名开窗函数的详细使用请看我的另一篇文章



(文/aierong  出处/博客园)

 您可能对 [SQL Server] 的这些文章也感兴趣:

SQL Server数据库的组成
微软要增强SQL 2005安全功能
如何优化SQL Server数据库查询
用SQL Server为Web浏览器提供图像(三)(转)
SQL Server 2008新特性——SSMS增强
SQL Server 2008 RTM 发布
SQL Server中错误1069:由于登录失败而无法启动服务的解决办法
关于SQL SERVER的一些安全问题
手工快速删除SQL Server中的重复记录
Sql Server2005 Transact-SQL 学习总结之-TOP 运算符
1
查看完整版本: Sql Server2005 Transact-SQL 学习总结之-窗口函数(OVER)
Modify by pin5i DZNT_ExpandPackage 2.1.3258 2007-2008 pin5i.com
  Total Unique Visitors: