ROW_NUMBER()
每一条数据加一个序号
RANK()
返回结果集的分区内每行的排名,行的排名是相关行之前的排名数加一。
如果使用RANK函数来生成序号,OVER子句中排序字段值相同的序号是一样的。
后面字段值不相同的序号将跳过相同的排名号排下一个,也就是相关行之前的排名数加一。
可以理解为根据当前的记录数生成序号,后面的记录依此类推。
如:1、2、2、4
DENSE_RANK()
DENSE_RANK()排名是连续的,RANK()是跳跃的排名,所以一般情况下用的排名函数就是RANK()。
如:1、2、2、3
NTILE()
基于排名行的分组
各个组有编号,编号从1开始,就像我们说的’分区’一样 ,分为几个区,一个区会有多少个。
OVER()
本函数需要结合上述函数进行使用,主要用于指定排名、分组的参照列。
语句如下:
Partition By typeid
ORDER BY score DESC
本文标题:SQL的排名函数
本文连接:https://blog.dextercai.com/archives/160.html
除另行说明,本站文字内容采用创作共用版权 CC-BY-NC-ND 4.0 许可协议,版权归本人所有。
除另行说明,本站图片内容版权归本人所有,任何形式的使用需提前联系。