• oracle中的分组排序


    1.首先,需要建表。

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

    image 

    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

    结果:

    image

    结论:

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

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

    结果:

    image

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

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

    结果:

    image

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

  • 相关阅读:
    惊!ThreadLocal你怎么动不动就内存泄漏?
    windows截屏.md
    小甲鱼.md
    sql手工注入.md
    2_ELF_header详解.md
    一句话下载器.md
    4.md
    通用寄存器.md
    2.md
    1_Segment_section.md
  • 原文地址:https://www.cnblogs.com/zcr3108346262/p/6531425.html
Copyright © 2020-2023  润新知