利用rank() 和 dense_rank() 来实现分类排名

oracle分类排序/排行可以通过聚合函数rank() 和 dense_rank() 来实现。
rank()  和 dense_rank() :
--两种排名方式(分区和不分区):使用和不使用partition
--两种计算方式(连续,不连续),对应函数:dense_rank,rank
dense_rank与rank()用法相当,但是有一个区别:dence_rank在并列关系时,相关等级不会跳过,即连续。rank则跳过,即不连续。

 

Code

 

关于ORACLE对于取整的区别
1.取整(大) 
  select ceil(-1.001) value from dual
2.取整(小)
  select floor(-1.001) value from dual
3.取整(截取)
  select trunc(-1.002) value from dual
4.取整(舍入)
       select round(-1.001) value from dual

这里需要注意的是,如果字段值为DBNull,系统会自动排序为1,这里首先做一下缺省值处理

你可能感兴趣的:(rank)