MySQL中排名函数RANK()、DENSE_RANK()、ROW_NUMBER()
VALUES | RANK | DENSE_RANK | ROW_NUMBER |
70 | 1 | 1 | 1 |
70 | 1 | 1 | 2 |
70 | 1 | 1 | 3 |
75 | 4 | 2 | 4 |
80 | 5 | 3 | 5 |
90 | 6 | 4 | 6 |
如上图所示,
RANK函数并列跳跃排名,并列即相同的值,相同的值保留重复名次,遇到下一个不同的值,跳跃到总共的排名;
DENSE_RANK函数并列连续排序,并列即相同的值,相同的值保留重复名次,遇到下一个不同值时,依然按照连续数字排名;
ROW_NUMBER函数连续排名,即使相同的值,依旧按照连续数字进行排名。