栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

sql数据库学习-排名函数

sql数据库学习-排名函数

要做一个合格的DBA专员,就要好好写sql。今天力扣看到这一题,才知道还有排名函数,记录一下。

1)ROW_NUMBER

row_number的用途非常的广泛。一般可以实现web程序的分页,他会为查询出来的每一行记录都生成一个序号,一次排序且不会重复。

select s.Score, ROW_NUMBER() OVER(order by  s.Score desc) as 'Rank' 
from Scores s 

 2)RANK

rank函数用于返回结果集的分区内每行的排名,这个是有间隙的。

select RANK() OVER(order by [UserId]) as rank,* from [Order] 

这边就是根据UserId划分的区域,同一个区域排名是一样的,不同的就是会累积了

3)DENSE_RANK

这个和RANK 差不多,无非就是不累计而已,这就是力扣那道题想要实现的结果。

select s.Score,DENSE_RANK() OVER(order by  s.Score desc) as 'Rank' 
from Scores s 

 

4)NTILE

ntile函数可以对序号进行分组处理。

select NTILE(4) OVER(order by [SubTime] desc) as ntile,* from [Order]

 1、每组的记录数不能大于它上一组的记录数,即编号小的桶放的记录数不能小于编号大的桶。也就是说,第1组中的记录数只能大于等于第2组及以后各组中的记录数。

  2、所有组中的记录数要么都相同,要么从某一个记录较少的组(命名为X)开始后面所有组的记录数都与该组(X组)的记录数相同。也就是说,如果有个组,前三组的记录数都是9,而第四组的记录数是8,那么第五组和第六组的记录数也必须是8。

 感觉这个有点烦的 好难好难

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/281443.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号