下面介绍Oracle的三种排序函数:
1,ROW_NUMBER() OVER(PARTITION BY col1 ORDER BY col2)
2,RANK() OVER(PARTITION BY col1 ORDER BY col2)
3,DENSE_RANK() OVER(PARTITION BY col1 ORDER BY col2)
相同点:根据col1分组,在分组内部根据col2排序
不同点:ROW_NUMBER组内连续且唯一,RANK跳跃排序,DENSE_RANK连续排序
例子:
ROW_NUMBER排序:
张三 100 1
李四 98 2
王五 98 3
赵六 90 4
孙七 80 5
RANK排序:
张三 100 1
李四 98 2
王五 98 2
赵六 90 4
孙七 80 5
DENSE_RANK排序:
张三 100 1
李四 98 2
王五 98 2
赵六 90 3
孙七 80 4