`
pingwei000
  • 浏览: 60946 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

MS SQL2005 over()特性

阅读更多
OVER 子句 (Transact-SQL)

更新日期: 2006 年 7 月 17 日

确定在应用关联的开窗函数之前,行集的分区和排序。

适用范围:

排名开窗函数

聚合开窗函数。 有关详细信息,请参阅聚合函数 (Transact-SQL)。

Transact-SQL 语法约定
语法
Ranking Window Functions
<OVER_CLAUSE> :: =
  OVER ( [ PARTITION BY value_expression , ... [ n ] ]
  <ORDER BY_Clause> )

Aggregate Window Functions
<OVER_CLAUSE> :: =
  OVER ( [ PARTITION BY value_expression , ... [ n ] ] )
参数
PARTITION BY

将结果集分为多个分区。 开窗函数分别应用于每个分区,并为每个分区重新启动计算。
value_expression

指定对相应 FROM 子句生成的行集进行分区所依的列。<value_expression> 只能引用 FROM 子句可用的列。 它不能引用选择列表中的表达式或别名。<value_expression> 可为列表达式、标量子查询、标量函数或用户定义的变量。
<ORDER BY 子句>

指定应用排名开窗函数的顺序。 有关详细信息,请参阅 ORDER BY 子句 (Transact-SQL)。重要提示:
在排名开窗函数的上下文中使用时,<ORDER BY 子句> 只能引用通过 FROM 子句可用的列。无法指定整数来表示选择列表中列名称或列别名的位置。 <ORDER BY 子句>不能与聚合开窗函数一起使用。



备注

开窗函数是在 ISO SQL 标准中定义的。SQL Server 提供排名开窗函数和聚合开窗函数。 窗口是用户指定的一组行。开窗函数计算从窗口派生的结果集中各行的值。

可以在单个查询中将多个排名或聚合开窗函数与单个 FROM 子句一起使用。 但是,每个函数的 OVER 子句在分区和排序上可能不同。 OVER 子句不能与 CHECKSUM 聚合函数结合使用。
示例
A. 将 OVER 子句与 ROW_NUMBER 函数结合使用

每个排名函数(ROW_NUMBER、DENSE_RANK、RANK、NTILE)都使用 OVER 子句。 以下示例显示了将 OVER 子句与 ROW_NUMBER 结合使用。
USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName
  ,ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number'
  ,s.SalesYTD, a.PostalCode
FROM Sales.SalesPerson s
  INNER JOIN Person.Contact c
  ON s.SalesPersonID = c.ContactID
  INNER JOIN Person.Address a
  ON a.AddressID = c.ContactID
WHERE TerritoryID IS NOT NULL
  AND SalesYTD <> 0;
GO
B. 将 OVER 子句与聚合函数结合使用

以下示例显示了将 OVER 子句与聚合函数结合使用。 在此示例中,使用 OVER 子句比使用子查询的效率高。
USE AdventureWorks;
GO
SELECT SalesOrderID, ProductID, OrderQty
  ,SUM(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Total'
  ,AVG(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Avg'
  ,COUNT(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Count'
  ,MIN(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Min'
  ,MAX(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Max'
FROM Sales.SalesOrderDetail
WHERE SalesOrderID IN(43659,43664);
GO

下面是结果集: SalesOrderID ProductID OrderQty 总计 Avg 计数 Min Max


以下示例显示在计算所得值中将 OVER 子句与聚合函数结合使用。
USE AdventureWorks;
GO
SELECT SalesOrderID, ProductID, OrderQty
  ,SUM(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Total'
  ,CAST(1. * OrderQty / SUM(OrderQty) OVER(PARTITION BY SalesOrderID)
  *100 AS DECIMAL(5,2))AS 'Percent by ProductID'
FROM Sales.SalesOrderDetail
WHERE SalesOrderID IN(43659,43664);
GO

下面是结果集:注意,聚合由 SalesOrderID 计算,并会为每个 SalesOrderID 的每一行计算 Percent by ProductID(ProductID 的百分比)。SalesOrderID ProductID OrderQty 总计 ProductID 的百分比
 
分享到:
评论

相关推荐

    ms sql server2000导入到ms sql server 2005

    本文将详细介绍如何将MS SQL Server 2000的数据顺利迁移到更新版本的MS SQL Server 2005中。这个过程通常被称为数据库升级或迁移,它涉及到数据的备份、转换以及在新环境中恢复。 首先,迁移前的准备工作至关重要。...

    ms sql2005 驱动包

    ms sql2005 驱动包 一个 直接下载导入就可以用

    MS SQL Server 2005 开发版(32位与64位)安装文件

    具体见下载,说明,比较齐全MS SQL Server 2005 开发版(32位与64位)

    SQL Server 2005新特性

    在当今的互联世界中,数据和管理数据的系统必须始终为用户可用且能够确保安全,有了SQL Server 2005,组织内的用户和IT专家将从减少应用程序宕机时间、提高可伸缩性及性能、更紧密的安全控制中获益。SQL Server 2005...

    SQL2005新特性研究报告-编程性第二部分\SQL2005新特性研究报告-第二部分\SQL2005新特性研究报告-第二部分.doc

    ### SQL Server 2005的新特性:编程性与可管理性的增强 #### 可编程性增强:OUTPUT语句 SQL Server 2005在编程性方面的一大进步体现在其引入了OUTPUT语句,该语句允许用户在执行INSERT、UPDATE或DELETE语句时返回...

    安装MS_SQL2005express版数据库.pdf

    【安装MS_SQL2005express版数据库】 MS_SQL2005 Express是Microsoft SQL Server 2005的一个轻量级版本,专为小型应用程序和开发人员设计,提供免费的数据库解决方案。此版本适用于那些不需要完整功能集,或者数据库...

    ms sql2005 安装指南

    《MS SQL2005 安装指南》 SQL Server 2005,作为Microsoft的一款强大数据库管理系统,提供多种版本以满足不同用户的需求。在选择适合自己的版本时,了解各个版本之间的差异至关重要。SQL2005主要包括五个版本:...

    SQL语句帮助文档 - MS SQL

    6. **T-SQL高级特性**: - **存储过程**:预编译的SQL语句集合,可以接受参数,执行复杂的业务逻辑。 - **触发器**:自动执行的数据库操作,常用于实现数据完整性或业务规则。 - **函数**:返回单个值的预定义...

    sqlserver2005 安装图解教程以及SQL 2005 SP3补丁安装图文教程

    SQL Server 2005 安装图解教程以及 SQL 2005 SP3 补丁安装图文教程 SQL Server 2005 是 Microsoft 公司推出的关系数据库管理系统,广泛应用于企业级数据库管理。下面是 SQL Server 2005 安装图解教程以及 SQL 2005 ...

    MS SQL SERVER 2005安装图解

    SQL SERVER 2005安装图解,我就是对着这个图安装起来的。

    SQL2005 新增特性

    有了 SQL Server 2005,组织内的用户和信息技术 (IT) 专家将从减少的应用程序停机时间、提高的可伸缩性及性能、更紧密而灵活的安全控制中获益。SQL Server 2005 也包括了许多新的和改进的功能来帮助 IT 工作人员更...

    D-Recovery(For MS SQL Server)达思SQL数据库修复软件

    D-Recovery For MS SQL Server是一款专门针对损坏的MS SQL Server数据文件(.mdf文件)进行数据恢复的软件。 由于某种原因导致数据库质疑、数据文件损坏而无法正常附加到数据库引擎、数据文件能正常附加但查询某些表...

    MS SQL Server 2000 安装·启用·卸载

    **MS SQL Server 2000 安装** 在安装 MS SQL Server 2000 时,首先需要将安装光盘放入 CD-ROM 驱动器。如果光盘不自动运行,需手动双击 Autorun.exe 文件启动安装流程。安装步骤如下: 1. 选择所需的 SQL Server ...

    MS SQL TDS协议

    ### MS SQL TDS协议知识点详解 #### 一、MS-TDS概述 **MS-TDS** (Tabular Data Stream) 是一种由微软开发的专用于**SQL Server**与客户端应用程序之间进行通信的网络协议。该协议定义了数据传输的格式、序列化规则...

    Features,strengths and weaknesses comparison between MS SQL 2005 and Oracle 10g database

    - **MS SQL Server 2005**:其优势在于与Windows生态系统的无缝集成,提供出色的管理工具,如SQL Server Management Studio,并且在成本方面,对于小企业和个人开发者来说,入门版本相对较为经济。 - **Oracle 10...

    SQL2005桌面版

    SQL Server 2005 Desktop Edition,简称SQL2005桌面版,是微软公司推出的一款面向个人用户和小型企业的数据库管理系统。它提供了强大的数据存储、管理和分析功能,是开发和部署应用程序的重要支撑。在安装SQL2005...

    Microsoft SQL Server 2005 向后兼容组件SQLServer2005_BC.msi

    这些组件确保了与SQL Server 2005相关的功能和特性在更高版本的数据库服务器中得以支持,这对于那些基于旧版SQL Server构建并无法立即迁移的应用程序至关重要。 SQLServer2005_BC.msi 文件是这个向后兼容组件的安装...

    Ms Sqlserver的JDBC驱动

    Ms SQL Server的JDBC驱动是Java开发者连接到Microsoft SQL Server数据库的重要工具,它允许Java应用程序通过JDBC(Java Database Connectivity)接口与SQL Server进行交互。本文将深入探讨这些主要文件的作用,以及...

    MS-SQL2005服务器登录名、角色、数据库用户、角色的创建

    MS-SQL2005服务器登录名、角色、数据库用户、角色的创建 不用SA密码,更安全!

    MS SQL2005 JDBC

    JAVA 连接SQL Server数据库使用的驱动程序

Global site tag (gtag.js) - Google Analytics