mysql四大排序函数

create table scores2021-08-24
(   id int(6)
   ,score DOUBLE(4,2)
);
insert into scores values(1,3.50);
insert into scores values(2,3.65);
insert into scores values(3,4.00);
insert into scores values(4,3.85);
insert into scores values(5,4.00);
insert into scores values(6,3.65);
commit;
select
    id 
   ,score
   ,rank() over(order by score desc) `rank`               #按照成绩排名,纯排名
   ,dense_rank() over(order by score desc) `dense_rank`   #按照成绩排名,相同成绩排名一致
   ,row_number() over(order by score desc) `row_number`   #按照成绩依次排名
   ,ntile(3) over (order by score desc) `ntile`           #按照分数划分成绩梯队
from scores;

mysql四大排序函数

 

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

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

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

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

参考地址:https://leetcode-cn.com/problems/rank-scores/solution/si-da-pai-ming-han-shu-he-guan-jian-zi-b-qvaz/

上一篇:oracle的窗口函数


下一篇:C# 使用NPOI处理Excel模板-【前面部分固定,中间是动态的几行,尾部是固定的部分】