灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3864回复:0

[SQL Server]SQL Server2008排序函数应用RowNumber,Rank,Dense_Rank,Ntile

楼主#
更多 发布于:2012-12-08 13:46



SQL Server2008排序函数应用RowNumber,Rank,Dense_Rank,Ntile

[sql]
--SQL Server2008 排序函数应用      
 www.atcpu.com  
/********************************************************************************  
*主题:SQL Server2008 排序函数用                                                                                                                                                          *说明:本文是个人学习的一些笔记和个人愚见          
*      有很多地方你可能觉得有异议,欢迎一起讨论
**********************************************************************************/  

这里不做果多的解释,直接上实例。

[sql]
--SQL2008 排名函数 RowNumber ,Rank,Dense_Rank ,Ntile  
create table #t(  
OrderID int ,CustomerID int  
)  
insert into #t values(43860,1)  
insert into #t values(44501,1)  
insert into #t values(45238,1)  
insert into #t values(46042,1)  
insert into #t values(46976,2)  
insert into #t values(47997,2)  
insert into #t values(49321,3)  
insert into #t values(32142,1)  
insert into #t values(43232,2)  
insert into #t values(53242,1)  
insert into #t values(13124,4)  
insert into #t values(12312,3)  
insert into #t values(53345,2)  
insert into #t values(34566,2)  
insert into #t values(32422,4)  
insert into #t values(53453,2)  
insert into #t values(63452,3)  
insert into #t values(13543,3)  
insert into #t values(53451,4)  
 
select * ,  
ROW_NUMBER()over(order by CustomerID)ROW_NUMBER,  
RANK()over(order by CustomerID)RANK,  
DENSE_RANK()over(order by CustomerID)DENSE_RANK,  
NTILE(100)over(order by CustomerID)NTILE  
from #t  
 
/*  
OrderID     CustomerID  ROW_NUMBER           RANK                 DENSE_RANK           NTILE  
----------- ----------- -------------------- -------------------- -------------------- --------------------  
43860       1           1                    1                    1                    1  
44501       1           2                    1                    1                    2  
45238       1           3                    1                    1                    3  
46042       1           4                    1                    1                    4  
32142       1           5                    1                    1                    5  
53242       1           6                    1                    1                    6  
43232       2           7                    7                    2                    7  
46976       2           8                    7                    2                    8  
47997       2           9                    7                    2                    9  
53453       2           10                   7                    2                    10  
53345       2           11                   7                    2                    11  
34566       2           12                   7                    2                    12  
12312       3           13                   13                   3                    13  
63452       3           14                   13                   3                    14  
13543       3           15                   13                   3                    15  
49321       3           16                   13                   3                    16  
13124       4           17                   17                   4                    17  
53451       4           18                   17                   4                    18  
32422       4           19                   17                   4                    19  
 
(19 行受影响)  
*/  

喜欢0 评分0
游客

返回顶部