一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - 實例講解sql server排名函數DENSE_RANK的用法

實例講解sql server排名函數DENSE_RANK的用法

2020-05-03 15:46我是攻城獅 Sql Server

這篇文章主要以一個實例講解了sql server排名函數DENSE_RANK的用法,感興趣的小伙伴們可以參考一下

一、需求

  之前sql server排名函數用得最多的應該是RoW_NUMBER()了,我通常用ROW_NUMBER() + CTE 來實現分頁;今天逛園,看到另一個內置排名函數還不錯,自己順便想了一個需求,大家可以花1分鐘先想想要怎么實現。

  需求很簡單:求成績排名前五的學生信息。

  例如:

實例講解sql server排名函數DENSE_RANK的用法

  由于成績可以并列,所以前五名可能有多個。例如:

實例講解sql server排名函數DENSE_RANK的用法

  測試數據:  

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
declare @t table
(ID int,
 StudentName nvarchar(15),
 Score int)
 
insert into @t
select 1,'黃一',99 union all
select 2,'吳二',99 union all
select 3,'張三',99 union all
select 4,'李四',98 union all
select 5,'王五',97 union all
select 6,'趙六',96 union all
select 7,'田七',95 union all
select 8,'紀八',94 union all
select 9,'邱九',93 union all
select 10,'林十',92 

二、自己實現

  我的想法:既然可能出現并列,那么就用 DISTINCT 找到前五的成績。ok,代碼如下:

?
1
2
3
select t1.* from @t t1
join(select distinct top 5 Score from @t order by Score desc) t2
on t1.Score = t2.Score    

  看起來和上面的要求的結果還是不太一樣,少了排序,當然我們可以在程序處理,這不是問題。

三、使用內置排名函數 DENSE_RANK

  其實sql server已經內置了這樣的函數可以幫助我們輕松實現,ok,直接上代碼:

?
1
2
3
4
;with cte as(
  select dense_rank() over(order by Score desc) rank,* from @t
)
select * from cte where rank < 6   

 四、擴展,內置排名函數RANK

  與 DENSE_RANK類似還有一個RANK函數,不過RANK函數不會順序排名,而是根據序號排。有點繞,把上面的函數改為RANK()就知道了,得到的結果如下:

實例講解sql server排名函數DENSE_RANK的用法

以上就是sql server排名函數DENSE_RANK的使用方法,分享了自己的一些想法,希望對大家的學習有所啟發。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色中文字幕 | 亚洲欧美成人中文在线网站 | 草莓视频首页 | xx18美女美国| 国产大片线上免费观看 | 高h全肉np触手 | 1313午夜精品理伦片 | 免费看国产精品久久久久 | 日韩成人免费aa在线看 | 91香蕉导航 | 国产免费又粗又猛又爽视频国产 | 国产成人影院一区二区 | 欧美一区二区免费 | 麻豆自拍| 午夜理论片日本中文在线 | 精品国产麻豆免费人成网站 | 国产成人久久精品一区二区三区 | 国产区小视频 | 办公室的秘密在线观看 | 精品视频在线免费 | 国产一区二区三区四 | 国产偷啪视频一区 | 免费观看成年人视频 | 14一15sexvideo日本 | 99久久精品免费看国产 | 秋霞一级黄色片 | 狠狠色狠狠色综合婷婷tag | 久久精品午夜一区二区福利 | 男人肌肌捅女人肌肌 | 99久久九九 | 69日本xxxxxxxxx98| 久久天堂成人影院 | ass天天裸妇pics | 深夜免费网站 | 嗯好爽视频 | 人妖三级 | 好大好硬好长好爽a网站 | 色妞视频一级毛片 | 手机看片日韩1024你懂的首页 | 99爱免费| 精品久久久久久综合网 |