SQL Server 2005学习总结:排名函数(二)

日期: 2008-08-19 作者:aieron 来源:TechTarget中国 英文

  –演示例题,建一个table







 create table rankorder( 
  orderid int, 
  qty int 
  ) 
  go 

  –插入数据







insert rankorder values(30,10) 
  insert rankorder values(10,10) 
  insert rankorder values(80,10) 
  insert rankorder values(40,10) 
  insert rankorder values(30,15) 
  insert rankorder values(30,20) 
  insert rankorder values(22,20) 
  insert rankorder values(21,20) 
  insert rankorder values(10,30) 
  insert rankorder values(30,30) 
  insert rankorder values(40,40) 
  go 

  –查询出各类排名  







 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 , 
  NTILE(3) OVER(ORDER BY qty) AS [NTILE] 
  FROM rankorder 
  ORDER BY qty 



  –结果


  –ROW_NUMBER()是按qty由小到大逐一排名,不并列,排名连续


  –RANK()是按qty由小到大逐一排名,并列,排名不连续


  –DENSE_RANK()是按qty由小到大逐一排名,并列,排名连续


  –NTILE()是按qty由小到大分成3组逐一排名,并列,排名连续







 orderid qty rownumber rank denserank NTILE 
  30 10 1 1 1 1 
  10 10 2 1 1 1 
  80 10 3 1 1 1 
  40 10 4 1 1 1 
  30 15 5 5 2 2 
  30 20 6 6 3 2 
  22 20 7 6 3 2 
  21 20 8 6 3 2 
  10 30 9 9 4 3 
  30 30 10 9 4 3 
  40 40 11 11 5 3 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

aieron
aieron

相关推荐