Sql Server2005 Transact-SQL 窗口函数(OVER)

sql server 2005 T-SQL BACKUP (Transact-SQL) 备份整个数据库,或者备份一个或多个文件或文件组 (BACKUP DATABASE)。另外,在完整恢复模式或大容量日志恢复模式下备份事务日志 (BACKUP LOG)。 Transact-SQL 语法约定 语法 Backing Up a Whole Database BACKUP DATABASE { database_name | @database_nam 阅读详情
1.简介:
SQL Server 2005中的窗口函数帮助你迅速查看不同级别的聚合,通过它可以非常方便地累计总数、移动平均值、以及执行其它计算。
窗口函数功能非常强大,使用起来也十分容易。可以使用这个技巧立即得到大量统计值。
窗口是用户指定的一组行。 开窗函数计算从窗口派生的结果集中各行的值。

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

3.例题:

--建立订单表
create table SalesOrder(
OrderID 
int,            --订单id
OrderQty decimal(18,2)  --数量
)
go

--插入数据
insert into SalesOrder
select 1,2.0
union all
select 1,1.0
union all
select 1,3.0
union all
select 2,6.0
union all
select 2,1.1
union all
select 3,8.0
union all
select 3,1.1
union all
select 3,7.0
go

--查询得如下结果
select * from SalesOrder
go

OrderID     OrderQty
----------- ------------
1           2.00
1           1.00
1           3.00
2           6.00
2           1.10
3           8.00
3           1.10
3           7.00



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

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


--利用窗口函数和聚合开窗函数,可以很快实现上述要求
select OrderID,OrderQty,
sum(OrderQty) over() as [汇总],
convert(decimal(18,4), OrderQty/sum(OrderQty) over() ) as [每单所占比例],
sum(OrderQty) over(PARTITION BY OrderID)  as [分组汇总],
convert(decimal(18,4),OrderQty/sum(OrderQty) over(PARTITION BY OrderID)) as [每单在各组所占比例]
from SalesOrder
order by OrderID


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

--sql2000
declare @sum decimal(18,2)
select @sum=sum(OrderQty) 
from SalesOrder

--按OrderID,计算每组的总计,然后插入临时表
select OrderID,sum(OrderQty) as su
into #t
from SalesOrder
group by OrderID

--连接临时表,得到结果
select s.OrderID,s.OrderQty,
    
@sum as [汇总],
    
convert(decimal(18,4),s.OrderQty/@sum) as [每单所占比例],
    t.su  
as [分组汇总],
    
convert(decimal(18,4),s.OrderQty/t.su) as [每单在各组所占比例]
from SalesOrder s join #t t
on t.OrderID=s.OrderID
order by s.OrderID

drop table #t
go
 
 
Source:http://www.cnblogs.com/aierong/archive/2008/08/26/1273890.html
高频电子线路:谐振回路、噪声系数与功放习题解析 在无线通信系统中,调制、选频、放大与噪声抑制是决定收发性能的基础环节。调制把基带信号搬到高频载波上,解决天线尺寸与频谱利用问题;谐振回路利用电感和电容在特定频率下的阻抗峰完成选频,其品质因数与通频带相互制约;噪声系数则衡量器件使信噪比恶化的程度,直接影响接收灵敏度。掌握这些概念的计算关系,可用于收音机选台、接收前端设计、发射链路效率评估以及仿真前参数粗估。围绕高频电子线路的习题训练,重点落在谐振回路参数、品质因数与带宽换算、噪声系数估算及高频功率放大器工作状态判断,帮助建立从公式到工程量的换算直觉。 阅读详情

相关推荐

SQL Server 2005数据库管理与应用指南

本文还有配套的精品资源,点击获取 简介:SQL Server 2005是微软推出的具有重要地位的关系型数据库管理系统,它以强大的数据库功能和安全性著称。该系统为数据存储、管理和分析提供了关键性的支持,深受企业和开发者的青睐。本简介介绍了SQL Server 2005的核心特性,包括Transact-SQL支持、集成服务、分析服务、Reporting Services、通知服...

weixin_42298164的博客 1388

Sql Server2005 Transact-SQL 新兵器学习总结之-窗口函数(OVER)

1.简介: SQL Server 2005中的窗口函数帮助你迅速查看不同级别的聚合,通过它可以非常方便地累计总数、移动平均值、以及执行其它计算。窗口函数功能非常强大,使用起来也十分容易。可以使用这个技巧立即得到大量统计值。窗口是用户指定的一组行。 开窗函数计算从窗口派生的结果集中各行的值。2.适用范围:排名开窗函数和聚合开窗函数.也就是说窗口函数是结合排名开窗函数或者聚合开窗函数一起使用OVER子...

aierong 206

SQL Server 2005中文教程完整指南

本文还有配套的精品资源,点击获取 简介:SQL Server 2005是一款企业级数据库管理系统,提供数据存储、查询和分析功能。本教程从基础到高级,全面覆盖了SQL Server 2005的核心知识,帮助用户熟练掌握数据库系统。涵盖关系数据库、Transact-SQL语法、服务器和数据库管理、数据库对象操作、权限管理、集成服务、代理服务和报表服务管理等内容。用户通过学习和实...

weixin_42577243的博客 974

SQL 数据分组累加sum() over (partition by ... order by ...)

drop table testaa --新建测试表testaa create table testaa (id int ,[group] varchar(10) ,num int ) select * from testaa --插入测试数据 insert into testaa select 1,'A',100 union all select 2,'A',200 union ...

矫正的快乐人生 2万+

SQL实现任意间隔的移动平均线

使用MS SQL 实现的任意间隔的移动平均线,

科普:Frenet坐标

理想情况下,描述这种常见驾驶行为在数学上应该很容易。一种方法是使用新的坐标系。现在,而不是放下一个正常的笛卡尔网格,我们做一些事情,就像你看到下面…Frenet Coordinates是一种以比传统x,y笛卡尔坐标更直观的方式表示道路位置的方式。如果我们想要方程式来描述这个动作,那就不容易了!想象一下像下面这样一条弯曲的道路,笛卡尔坐标系就位于它的上面…使用这些笛卡尔坐标,我们可以尝试描述车辆通常在路上行驶的路径…那么在Frenet坐标系下呈现的典型轨迹是什么样的?在这里,我们定义了一个新的坐标系统。

OceanStar的博客 1万+

SQL开窗函数:格式、示例、PARTITION BY 子句、ORDER BY子句、常用聚合函数

一、开窗函数介绍 开窗函数(使用OVER字句定义)用于为行定义一个“窗口”,并使用窗口对行集合进行聚合计算。 使用开窗函数后,可以不需要使用GROUP BY子句对数据进行分组,就能够在同一行中同时返回聚合结果。 二、开窗函数格式 格式:函数名(列) OVER(选项) OVER 关键字表示把函数当成开窗函数而不是聚合函数。SQL 标准允许将所有聚合函数用做开窗函数,使用 OV...

灰哥数据智能的专栏 3740

别再为倍福EL6021/EL6022的RS485接线头疼了!手把手教你硬件跳线与软件配置(附Modbus RTU主站例程)

本文详细解析了倍福EL6021/EL6022模块的RS485硬件跳线与软件配置方法,包括Modbus RTU主站编程实战。从端子定义、跳线操作到TwinCAT 3环境设置,提供完整的通信例程和故障排查技巧,帮助工程师快速解决工业现场通信问题。

weixin_30634661的博客 591

sum over(order by) 和sum over(partition by) 的用法

代码如下: select xmdc001, xmdc015, sum(xmdc015) over( order by xmdc001) as sum from xmdc_t 代码说明:先按照xmdc001排序,然后累计xmdc015字段。 效果如下: 另外,以下代码含义为,先按照xmdc001排序分类,后进行累加。(注意,累加只会对相同的xmdc001进行累加) select xmdc001, xmdc015, sum(xmdc015) o

erpmark的博客 2927

期货缠论实战:文华财经笔中枢指标公式解析与博易大师应用指南

本文深入解析期货缠论实战中的文华财经笔中枢指标公式及其在博易大师平台的应用技巧。详细介绍了笔中枢指标的核心逻辑、公式拆解、参数设置及多周期联合作战策略,帮助交易者提升市场分析能力与交易胜率。特别适合期货交易者学习缠论指标的实际应用。

weixin_42522552的博客 357

SAP开发顾问简历模板范文(精选篇)

SAP开发顾问简历该怎么写呢?

Huanzhucv的博客 1569

sqlserver中的Row_Number() over(PARTITION BY a ORDER BY a DESC)函数的用法

有一张订单表,需求是要查出每个月销量前三的商品,在网上找了一些资料,最后请教了下前辈, 具体的sql如下(sql server): SELECT * FROM( SELECT a.*, ROW_NUMBER() OVER(PARTITION BY a.ordertime ORDER BY a.ordertime DESC,a.achievement DESC) as rows FROM (...

Kiss键 4790

必看!wechat-article-exporter:轻松批量下载公众号文章

微信搜索“”关注公众号。在信息爆炸的时代,我们每天都会接触到大量优秀的微信公众号文章。有时候,我们想要将这些精彩的内容保存下来,以便日后回顾或者分享给更多的人。然而,微信公众号并没有提供直接的批量下载功能,这给我们带来了不少困扰。今天,我要给大家分享一款非常实用的软件——wechat-article-exporter,它能够帮助我们轻松地批量下载微信公众号文章,让你不再为文章的保存而烦恼。

王乐平 技术博客 4355

SQL rank() 用法

WITH vep AS ( SELECT package.OrderCode , RANK() OVER ( PARTITION BY package.OrderCode ORDER BY package.ID ) AS Index , COUNT(1) OVER...

weixin_34252090的博客 1622

如何设计一个低代码平台

近些年来,低代码发展火热,各种低代码平台如雨后春笋纷纷崛起,这些平台各定位不同,优劣不同,用户的选择空间很大。那么,如果用户想从零开始设计一个低代码平台,该如何做呢?

Jarod_Chou的博客 8258

腾讯开源SuperSonic:AI+BI如何重塑数据分析?

SuperSonic是腾讯开源的AI+BI平台,融合Chat BI与Headless BI,为制造企业提供实时数据分析。它通过自然语言交互打破数据壁垒,实现生产、库存、质量、供应链等多环节优化,提升决策效率,其开源生态与扩展性助力企业数字化转型与数据价值挖掘。

数据与算法架构提升之路专栏 4540

SQL Server 2005 Beta 2 Transact-SQL 增强功能

Itzik Ben-GanSolid Quality Learning适用于:Transact-SQLMicrosoft SQL Server 2005 Beta 2摘要:该白皮书介绍了 Microsoft SQL Server 2005 Beta 2 中的 Transact-SQL 的几个新的增强功能。这些新功能可以改善您的表达能力、查询性能以及错误管理功能。本文重点介绍几个概念新颖

Teng_s2000的专栏 1739

DSI3协议介绍

分布式系统接口(DSI)是一种通用且功能强大的总线协议,旨在将多个遥感器和执行器设备互连到中央控制模块。该网络的主要目标应用是汽车安全系统。这种应用的一些特点是需要低成本、高鲁棒性、中速互连,仅限于两根导线。此外,它必须具有故障安全性、确定性和良好的EMC特性。即使具有所有级别的智能和可编程性的设备都可以连接到网络,远程设备也必须能够通过简单的状态机实现。由于模块尺寸非常重要,因此中央模块和远程单元中的最小组件至关重要。

汽车电子软件领域知识分享 1万+

SQL server 2005数据库的创建和管理

SQL server 2005数据库的创建和管理 在SQL Server 2005中创建和管理数据库的方法主要有两种:一是在SQL Server Management Studi方便的图形化向导创建,二是通过执行Transact-SQL语句创建和管理数据库。 1.使用SQL Server Management Studio创建数据库。 利用SQL Server Management Studio对...

yi_xxxx的博客 3056

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 优化SQL Server数据库
下一篇: ASP.NET Form表单认证
ria_coder
博客等级 码龄19年 3粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值