SQL中排序函数的用法
SQL中的排序函数有三:1、row_number() over();2、rank() over();3、dense_rank() over(),具体用法如下:
1.row_number() over(partition by 列名 order by 列名 [desc])
其中,partition by 是分组,在组内各自排序。
row_number()函数是一般的排序函数,如有重复,则排序也是一直递增
2.rank() over(partition by 列名 order by 列名 [desc])
rank()函数是跳跃排序,如有两个第2名,则排序后为1.2.2.4名,其他与row_number()无异
3.dense_rank() over(partition by 列名 order by 列名 [desc])
dense_rank()函数是连续排序,如有两个第2名,则排序后为1.2.2.3,其他与row_number()无异
注:这几个函数都只能在SQL server中使用,MySQL中无法使用
4.在Mysql中可以间接实现排序的功能
如下所示:
set @a = 0;
select *,@a := + 1 as rank
from table_name
order by column_name
此时,新增一个变量@a,这样最后会出现排序列rank。如果有两个一样的数据,此功能排序后名次也是递增的,相当于一般的排序函数row_number().
Mysql实现rank函数以及dense_rank函数的功能暂未实现。
浙公网安备 33010602011771号