sqlserver 中row_number,rank,dense_rank,ntile排名函数的用法
2015-10-14 14:39
411 查看
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函数有一个参数,用来指 定桶数。
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函数有一个参数,用来指 定桶数。
相关文章推荐
- mysql更新密码为空
- Redis正确使用的十个技巧
- Mongodb总结4-Spring环境使用Mongodb
- Mongodb总结4-Spring环境使用Mongodb
- Mongodb总结4-Spring环境使用Mongodb
- oracle基本sql语句和函数详解
- Oracle 用户解锁
- SQL中当null加入比较
- 数据库postgresql的单表备份与恢复
- MYSQL导出导入
- Sql Server Alter语句
- [置顶] 【实验-视频过程】数据库归档日志满了以后
- mysql启动时,提示/etc/my.cnf 被忽略的问题处理
- Oracle中的sysdate,newid()
- mongoDB基本操作
- SQL 中order by 、group by 、having的用法区别
- mysql指定某行或者某列的排序
- C# sqlserver winform
- sqlite3学习
- MySQL查看、创建和删除索引的方法