亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQLSERVER 2005的ROW_NUMBER、RANK、DENSE_RANK的用法

2020-10-30 19:10:08
字體:
來源:轉載
供稿:網(wǎng)友
ROW_NUMBER()

說明:返回結果集分區(qū)內行的序列號,每個分區(qū)的第一行從
1 開始。
語法:ROW_NUMBER ()
OVER ( [ <partition_by_clause> ] <order_by_clause> ) 。
備注:
ORDER BY 子句可確定在特定分區(qū)中為行分配唯一 ROW_NUMBER 的順序。
參數(shù):
<partition_by_clause> :將 FROM 子句生成的結果集劃入應用了 ROW_NUMBER 函數(shù)的分區(qū)。
     
<order_by_clause>:確定將 ROW_NUMBER 值分配給分區(qū)中的行的順序。
返回類型:
bigint 。

示例:
/*以下示例將根據(jù)年初至今的銷售額,返回 AdventureWorks 中銷售人員的 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 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
/*
FirstName  LastName    Row Number  SalesYTD      PostalCode
---------  ----------  ----------  ------------  ----------------------------
Shelley    Dyck        1           5200475.2313  98027
Gail       Erickson    2           5015682.3752  98055
Maciej     Dusza       3           4557045.0459  98027
Linda      Ecoffey     4           3857163.6332  98027
Mark       Erickson    5           3827950.238   98055
Terry      Eminhizer   6           3587378.4257  98055
Michael    Emanuel     7           3189356.2465  98055
Jauna      Elson       8           3018725.4858  98055
Carol      Elliott     9           2811012.7151  98027
Janeth     Esteves     10          2241204.0424  98055
Martha     Espinoza    11          1931620.1835  98055
Carla      Eldridge    12          1764938.9859  98027
Twanna     Evans       13          1758385.926   98055
(13 行受影響)
*/

/*以下示例將返回行號為 50 到 60(含)的行,并以 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;
/*
SalesOrderID OrderDate               RowNumber
------------ ----------------------- --------------------
43708        2001-07-03 00:00:00.000 50
43709        2001-07-03 00:00:00.000 51
43710        2001-07-03 00:00:00.000 52
43711        2001-07-04 00:00:00.000 53
43712        2001-07-04 00:00:00.000 54
43713        2001-07-05 00:00:00.000 55
43714        2001-07-05 00:00:00.000 56
43715        2001-07-05 00:00:00.000 57
43716        2001-07-05 00:00:00.000 58
43717        2001-07-05 00:00:00.000 59
43718        2001-07-06 00:00:00.000 60
(11 行受影響)
*/

--------------------------------------------------------------
RANK()

說明:返回結果集的分區(qū)內每行的排名。行的排名是相關行之前的排名數(shù)加一。
語法:RANK ()
OVER ( [ < partition_by_clause > ] < order_by_clause > )
備注:如果兩個或多個行與一個排名關聯(lián),則每個關聯(lián)行將得到相同的排名。
      例如,如果兩位頂尖銷售員具有同樣的 SalesYTD 值,他們將并列第一。
      由于已有兩行排名在前,所以具有下一個最大 SalesYTD 的銷售人員將排名第三。
      因此,RANK 函數(shù)并不總返回連續(xù)整數(shù)。
      用于整個查詢的排序順序決定了行在結果集中的顯示順序。這也隱含了行在每個分區(qū)中的排名。
參數(shù):
< partition_by_clause > :將 FROM 子句生成的結果集劃分為要應用 RANK 函數(shù)的分區(qū)。
     
< order_by_clause >:確定將 RANK 值應用于分區(qū)中的行時所基于的順序。
返回類型:
bigint

示例:
/*以下示例按照數(shù)量對清單中的產(chǎn)品進行了排名。行集按 LocationID 分區(qū),按 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
/*
ProductID   Name                                               LocationID Quantity RANK
----------- -------------------------------------------------- ---------- -------- --------------------
1           Adjustable Race                                    6          324      71
1           Adjustable Race                                    1          408      78
1           Adjustable Race                                    50         353      117
2           Bearing Ball                                       6          318      67
2           Bearing Ball                                       1          427      85
2           Bearing Ball                                       50         364      122
3           BB Ball Bearing                                    50         324      106
3           BB Ball Bearing                                    1          585      110
3           BB Ball Bearing                                    6          443      115
4           Headset Ball Bearings                              1          512      99
4           Headset Ball Bearings                              6          422      108
4           Headset Ball Bearings                              50         388      140
316         Blade                                              10         388      33
......
(1069 行受影響)
*/
SQL code

--接上.
--
-----------------------------------------------------------------------------------
DENSE_RANK()

說明:返回結果集分區(qū)中行的排名,在排名中沒有任何間斷。行的排名等于所討論行之前的所有排名數(shù)加一。
語法:DENSE_RANK ()
OVER ( [ < partition_by_clause > ] < order_by_clause > )
備注:如果有兩個或多個行受同一個分區(qū)中排名的約束,則每個約束行將接收相同的排名。
例如,如果兩位頂尖銷售員具有相同的 SalesYTD 值,則他們將并列第一。
接下來 SalesYTD 最高的銷售人員排名第二。該排名等于該行之前的所有行數(shù)加一。
因此,DENSE_RANK 函數(shù)返回的數(shù)字沒有間斷,并且始終具有連續(xù)的排名。
整個查詢所用的排序順序確定了各行在結果中的顯示順序。這說明排名第一的行可以不是分區(qū)中的第一行。
參數(shù):
< partition_by_clause > :將 FROM 子句所生成的結果集劃分為數(shù)個將應用 DENSE_RANK 函數(shù)的分區(qū)。
< order_by_clause >:確定將 DENSE_RANK 值應用于分區(qū)中各行的順序。
返回類型:
bigint

示例:
/*以下示例返回各位置上產(chǎn)品數(shù)量的 DENSE_RANK。 */
USE AdventureWorks;
GO
SELECT i.ProductID, p.Name, i.LocationID, i.Quantity, DENSE_RANK() OVER (PARTITION BY i.LocationID order by i.Quantity) as DENSE_RANK
FROM Production.ProductInventory i JOIN Production.Product p ON i.ProductID = p.ProductID
ORDER BY Name;
GO
/*
ProductID Name LocationID Quantity DENSE_RANK
----------- -------------------------------------------------- ---------- -------- --------------------
1 Adjustable Race 1 408 57
1 Adjustable Race 6 324 52
1 Adjustable Race 50 353 82
879 All-Purpose Bike Stand 7 144 34
712 AWC Logo Cap 7 288 38
3 BB Ball Bearing 50 324 74
3 BB Ball Bearing 6 443 81
3 BB Ball Bearing 1 585 82
*/

-------------------------------------------------------------------------------------------------------
將上面三個函數(shù)放在一起計算,更能明顯看出各個函數(shù)的功能。

CREATE TABLE rankorder(orderid INT,qty INT)
INSERT rankorder VALUES(30001,10)
INSERT rankorder VALUES(10001,10)
INSERT rankorder VALUES(10006,10)
INSERT rankorder VALUES(40005,10)
INSERT rankorder VALUES(30003,15)
INSERT rankorder VALUES(30004,20)
INSERT rankorder VALUES(20002,20)
INSERT rankorder VALUES(20001,20)
INSERT rankorder VALUES(10005,30)
INSERT rankorder VALUES(30007,30)
INSERT rankorder VALUES(40001,40)
INSERT rankorder VALUES(30007,30)
GO
--對一個列qty進行的排序
SELECT orderid,qty,
ROW_NUMBER()
OVER(ORDER BY qty) AS rownumber,
RANK()
OVER(ORDER BY qty) AS rank,
DENSE_RANK()
OVER(ORDER BY qty) AS denserank
FROM rankorder
ORDER BY qty
/*
orderid qty rownumber rank denserank
----------- ----------- -------------------- -------------------- --------------------
30001 10 1 1 1
10001 10 2 1 1
10006 10 3 1 1
40005 10 4 1 1
30003 15 5 5 2
30004 20 6 6 3
20002 20 7 6 3
20001 20 8 6 3
10005 30 9 9 4
30007 30 10 9 4
30007 30 11 9 4
40001 40 12 12 5
(12 行受影響)
*/

--對兩個列qty,orderid進行的排序
SELECT orderid,qty,
ROW_NUMBER()
OVER(ORDER BY qty,orderid) AS rownumber,
RANK()
OVER(ORDER BY qty,orderid) AS rank,
DENSE_RANK()
OVER(ORDER BY qty,orderid) AS denserank
FROM rankorder
ORDER BY qty,orderid
drop table rankorder
/*
orderid qty rownumber rank denserank
----------- ----------- -------------------- -------------------- --------------------
10001 10 1 1 1
10006 10 2 2 2
30001 10 3 3 3
40005 10 4 4 4
30003 15 5 5 5
20001 20 6 6 6
20002 20 7 7 7
30004 20 8 8 8
10005 30 9 9 9
30007 30 10 10 10
30007 30 11 10 10
40001 40 12 12 11
(12 行受影響)
*/
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
在线免费a视频| 久久久91精品国产一区不卡| 视频一区日韩精品| 欧美大片在线影院| 91福利精品在线观看| 色99之美女主播在线视频| 国产亚洲高清在线观看| 国产精品yjizz视频网一二区| 特黄aaaaaaaaa毛片免费视频| 天堂午夜在线| 高清亚洲高清| 日韩欧美高清dvd碟片| 日本一区二区高清视频| 亚洲国产精品欧美一二99| 欧美黄色性生活| 91久久人澡人人添人人爽欧美| 精品国产乱码一区二区三区四区| 国产精品亚洲αv天堂无码| 青青草在线视频免费观看| 99re热视频这里只精品| 亚洲精品一区二区三区网址| 久久久久午夜电影| 91高清视频在线| 国产va免费精品高清在线| 两女双腿交缠激烈磨豆腐| 在线观看亚洲区| 日韩亚洲欧美中文三级| 国内精品视频在线观看| 国产女人aaa级久久久级| 黄色毛片视频| 香蕉成人在线视频| 激情视频在线观看一区二区三区| 久久久久久成人网| 激情综合色丁香一区二区| 欧美精品在线一区二区| 成人高清伦理免费影院在线观看| 北岛玲精品视频在线观看| 午夜成年女人毛片免费观看| 亚洲精品播放| 欧美一区二区少妇| 久久亚洲影音av资源网| www.99re.av| 国产精品精品| 亚洲色无码播放| 国产91在线播放精品91| 91性高湖久久久久久久久_久久99| 欧美一区一区| 欧美一区二区三区男人的天堂| 11024精品一区二区三区日韩| 亚洲妇熟xx妇色黄蜜桃| 国产精品久久综合av爱欲tv| 中文字幕日本人妻久久久免费| 91在线直播亚洲| 国产伦精品一区二区三区免| 国产精品一区二区人妻喷水| 久久久久久97三级| 亚洲一区站长工具| 91大神在线资源观看无广告| 在线观看国产精品入口男同| 久久青青草原| 亚洲欧美国产日韩天堂区| 日本熟妇乱子伦xxxx| 亚洲在线观看免费| 不卡一区二区在线| 成人看片黄a免费看视频| av网站网址| 岛国视频一区| 黄色在线观看av| 亚洲片国产一区一级在线观看| 日韩影院一区| 午夜精品三级视频福利| 亚洲精品一区二区18漫画| 无码人妻久久一区二区三区| 免费在线观看视频一区| www视频在线播放| 欧美大香线蕉线伊人久久| 妖精视频一区二区三区| 日韩一级免费| 国产乱码精品一区二三赶尸艳谈| japanese23hdxxxx日韩| jizzz18| 亚洲欧洲www| av在线网站观看| 日韩精品电影网站| 欧美伦理一区二区| 日本一区二区综合亚洲| 韩日在线一区| 正在播放一区二区三区| 26uuu亚洲综合色| 日韩毛片在线观看| 久久久久久欧美精品se一二三四| 免费在线观看的av网站| 色黄视频在线观看| 亚洲二区免费| 色欧美激情视频在线| 黄色网址免费看| 亚洲第一天堂在线观看| 伊人精品视频在线观看| 最新国产成人在线观看| 久久精品国产一区二区三区免费看| 色菇凉天天综合网| 色哟哟中文字幕| 国内外成人激情免费视频| 毛片不卡一区二区| 亚洲国产网站| 亚洲婷婷综合久久一本伊一区| 日韩电影网1区2区| 蜜桃在线一区二区| 一区二区小视频| av午夜精品一区二区三区| 粗大的内捧猛烈进出视频| 国产一区二区免费看| 日韩精品一区二区三| 性欧美孕妇孕交| 试看120秒一区二区三区| 欧美日韩国产一区二区三区| 欧美黑人欧美精品刺激| 国产精品一区2区3区| 99久久精品一区二区三区| 亚洲小说欧美激情另类| 亚洲欧美在线网| 免费看男女www网站入口在线| 中文字幕第21页| 风间由美一二三区av片| 激情不卡一区二区三区视频在线| 久久综合99| 欧美黑人欧美精品刺激| 欧美在线3区| 日韩久久一区二区三区| 日本免费不卡| 亚洲性无码av在线| 国产三级午夜理伦三级| 先锋影音在线播放av| 波多野结衣高清在线| 你懂的网站在线观看网址| 韩日欧美一区二区| 91丝袜美腿高跟国产极品老师| 91精品国产综合久久福利软件| 欧美日韩在线播放一区二区| 国产成人中文字幕| 肉色超薄丝袜脚交一区二区| 中文字幕人妻一区二区三区在线视频| 亚洲精品孕妇| 国内成人自拍| 69国产精品视频| 免费观看成人www动漫视频| 中日韩视频在线观看| www精品美女久久久tv| av在线app| 福利在线一区二区| 视频一区视频二区中文字幕| 欧洲久久久久久| 欧美猛男性生活免费| 蜜桃视频日韩| 久久久久伊人| 亚洲综合久久久久| 日韩欧美一区二区三区不卡视频| 99re免费99re在线视频手机版| 日本道中文字幕| 久热免费视频| 久久麻豆一区二区| 欧美一区二区三区四区五区六区| 亚洲熟女乱综合一区二区三区| 最新国产精品久久| 国产精品乱码一区二三区小蝌蚪| 精品国产免费人成在线观看| 国产农村妇女毛片精品久久麻豆| 精品久久久香蕉免费精品视频| 综合国产精品久久久| 91精品一区二区三区在线观看| 欧美精品一级二级| 欧美激情成人网| 久久久国产精彩视频美女艺术照福利| av在线电影网| 99精品在线| 亚洲一区二区三区自拍| 韩国三级在线看| 国产欧美一区二区三区在线看蜜臀| 伊人网免费视频| 精品99re| 手机在线精品视频| 国产玉足榨精视频在线观看| 久久性色av| 欧美极品视频在线观看| 日韩理论片中文av| 中文产幕区在线观看| 亚洲xxxx3d动漫| 亚洲欧美日韩国产综合| 国产综合图区| 欧美日韩亚洲一区二区三区在线观看| 福利一区二区在线| 欧美久久久久久一卡四| 精品国产91| 亚洲精品欧美二区三区中文字幕| 一级黄色电影片| 一级黄色大片免费| 波多野结衣视频在线看| 亚洲成人网久久久| 国产91精品精华液一区二区三区| 欧美成人日韩| 伊人精品视频| 日日骚一区二区网站| 4444亚洲人成无码网在线观看| 日韩欧美高清在线| 亚洲人成绝费网站色www| 久久久久久久综合日本| caoporn97免费视频公开| 五月婷婷一区二区三区| 国产区在线看| 欧美日韩成人综合| yy4480电影网| 亚洲一区久久久| 欧美三级视频网站| 亚洲精品黄色| 在线观看国产成人av片| 日韩精品在线观看一区| 亚洲av无码一区东京热久久| 热99re久久精品这里都是免费| 日韩av在线播| 亚洲电影影音先锋| 亚洲国产成人精品激情在线| 日韩欧美激情视频| 欧美男男青年gay1069videost| 日韩精品免费一区二区三区| 亚洲精品第一| 中文字幕2020第一页| 免费99热在线观看| 韩国精品一区二区三区| 一卡二卡在线视频| 日韩欧美一级二级| 拍真实国产伦偷精品| 888奇米影视| 三级欧美韩日大片在线看| 久久精品99久久无色码中文字幕| 三级中文字幕在线观看| 黄色资源在线看| 亚洲女同志亚洲女同女播放| 国产不卡精品一区二区三区| 国内精品卡一卡二卡三新区| 欧州一区二区三区| 美女被男人操网站| 国产另类图片| 精品一区二区三区在线播放视频| 亚洲免费一区二区| 亚洲欧美在线精品| 精品国产第一福利网站| 亚洲一区中文在线| 一区一区三区| 黄色污污视频在线观看| 色吊丝在线永久观看最新版本| 日韩在线视频导航| 成年人在线网站| 精品xxxxxbbbb欧美中文| 奶水喷射视频一区| 在线观看视频一区二区三区| 外国成人毛片| 亚洲国产高清aⅴ视频| 一区二区成人免费视频| 免费成人在线观看| 欧美制服第一页| 老熟妇高潮一区二区三区| 香蕉国产在线视频| 国产成人毛毛毛片| 国产美女永久免费无遮挡| 99精品视频一区二区| 亚洲一区二区福利| 精品视频在线播放一区二区三区| 国产欧美一区二区在线| 一级淫片在线观看| 成人无遮挡免费网站视频在线观看| 日韩免费视频一区二区| 国产调教在线| 欧美国产欧美亚州国产日韩mv天天看完整| h在线视频免费观看完整版| 美女国内精品自产拍在线播放| 日本在线免费观看一区| 成人情趣视频网站| 嫩草视频在线观看| 亚洲视频小说图片| 桃乃木香奈和黑人aⅴ在线播放| 青青草免费观看视频| 国际av在线| 亚洲毛片av| 日本乱理伦在线| 日韩一区二区电影| 日本欧美不卡| 欧美色综合一区二区三区| 99中文字幕在线| 久久综合久久综合九色| 永久免费黄色片| 91成人福利在线| 加勒比成人在线| 成人免费毛片嘿嘿连载视频| 999久久久国产999久久久| 国产成人超碰人人澡人人澡| 麻豆视频观看网址久久| 亚洲一区二区欧美| 国产精品久久久久久久久久妞妞| 白丝校花扒腿让我c| 国产男女猛烈无遮挡a片漫画| 91网站进入| 福利91精品一区二区三区| 好紧好硬好湿我太爽了| 国产精品免费视频一区一| 久久久久久人妻一区二区三区| 国产精品久久久久久久久久久久午夜片| 亚洲www视频| 日本成年免费网站| 中文字幕乱码在线观看| www.欧美.com| 影音先锋在线中文| 999在线观看精品免费不卡网站| 天堂网在线观看| 都市激情国产精品| 九色视频成人porny| 日韩av一二区| 国产盗摄女厕一区二区三区| 日韩在线播放一区二区| 亚洲高清在线观看| 欧美日韩中字一区| 国产成人精品av在线| 欧美成人午夜激情视频| 国产视频在线免费观看| 久久久精品视频网站| 精品网站在线看| 韩国欧美国产一区| 午夜精品影院在线观看| h视频在线免费观看|