MENU

SQL的排名函数

September 27, 2021 • 学习

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
Archives QR Code
QR Code for this page
Tipping QR Code