MySql 四大排名函数

2021/12/23 2:20:37

本文主要是介绍MySql 四大排名函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

四大排名函数
一、ROW_NUMBER()
Row_number() 在排名是序号 连续 不重复,即使遇到表中的两个一样的数值亦是如此

select *,row_number() OVER(order by number ) as row_num
from num

数据如下

 

 


结果如图


注意:在使用row_number() 实现分页时需要特别注意一点,over子句中的order by 要与SQL排序记录中的order by保持一致,否则得到的序号可能不是连续的
select *,row_number() OVER(order by number ) as row_num
from num
ORDER BY id

 

二、rank()
Rank() 函数会把要求排序的值相同的归为一组且每组序号一样,排序不会连续执行

select *,rank() OVER(order by number ) as row_num
from num

结果如下:

 

 


三、dense_rank()
Dense_rank() 排序是连续的,也会把相同的值分为一组且每组排序号一样

select *,dense_rank() OVER(order by number ) as row_num
from num

结果如下:

 

 


四、ntile()
Ntile(group_num) 将所有记录分成group_num个组,每组序号一样

select *,ntile(2) OVER(order by number ) as row_num
from num

 



这篇关于MySql 四大排名函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程