1.首先,需要建表。

表名:coursr(失误,表名写错了)

oracle中的分组排序 

2.我们需要对每个课程进行排序。

3.知识准备:

分组排序函数有3种:

  • row_number() over()
  • rank() over()
  • dense_rank() over()

4.运行

  • row_number() over()
select t.*,
       row_number() over(partition by t.coursename order by t.coursescore desc) courserank
  from sddbtmp.coursr t

结果:

oracle中的分组排序

结论:

       可以看出,row_number() over() 这个函数把排序从1开始,不管分数重复不重复。

  • rank() over()
select t.*,
       rank() over(partition by t.coursename order by t.coursescore desc) courserank
  from sddbtmp.coursr t

结果:

oracle中的分组排序

结论:这个函数把排序从1开始,但是当分数重复时,排名会相同,例如有两个第二名时接下来就是第四名(同样是在各个分组内)

  • dense_rank() over()
select t.*,
       dense_rank() over(partition by t.coursename order by t.coursescore desc) courserank
  from sddbtmp.coursr t

结果:

oracle中的分组排序

结论:这个函数把排序从1开始,但是当分数重复时,排名会相同,例如有两个第二名时接下来就是第三名(同样是在各个分组内)

相关文章:

  • 2021-10-31
  • 2022-01-15
  • 2022-12-23
  • 2022-01-06
  • 2021-08-03
  • 2021-10-21
猜你喜欢
  • 2022-12-23
  • 2021-07-02
  • 2022-12-23
  • 2021-07-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案