码迷,mamicode.com
首页 > 数据库 > 详细

sqlserver 中row_number,rank,dense_rank,ntile排名函数的用法

时间:2015-10-14 16:03:18      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

1.row_number() 就是行号

技术分享

2.rank:类似于row_number,不同之处在于,它会对order by 的字段进行处理,如果这个字段值相同,那么,行号保持不变

技术分享

3.dense_rank:与rank类似,不同之处在于行号是否保留一个位置,rank对保留这个位置,即上面图中,row的值由1直接变为3,因为它的1出现了两次,所以为2保留了一个位置,而dense_rank不会保留2这个位置,即实现的行号2其实是排在了第3位

技术分享

4.ntile函数可以对序号进行分组处理。这就相当于将查询出来的记录集放到指定长度的数组中,每一个数组元素存放一定数量的记录。ntile函 数为每条记录生成的序号就是这条记录所有的数组元素的索引(从1开始)。也可以将每一个分配记录的数组元素称为“桶”。ntile函数有一个参数,用来指 定桶数。

技术分享

sqlserver 中row_number,rank,dense_rank,ntile排名函数的用法

标签:

原文地址:http://www.cnblogs.com/yxlblogs/p/4877404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!