怎么实现分类排序??

lzf200012 2007-06-02 12:42:10
学生成绩表(学生学号,学期,平均分,)

如何统计各学生在各学期的成绩排名.也就是说.每个学生在每个学期都有一个成绩名次.
...全文
292 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Well 2007-07-17
  • 打赏
  • 举报
回复
用row_number()分析函数进行处理
lzf200012 2007-07-16
  • 打赏
  • 举报
回复
多谢hemingwang0902()了,直到现在才又上这个站
the7thsense 2007-07-10
  • 打赏
  • 举报
回复
mark
rock8517 2007-06-02
  • 打赏
  • 举报
回复
又一个好例子,学习了。
zhuang6781193 2007-06-02
  • 打赏
  • 举报
回复
楼上正解
hemingwang0902 2007-06-02
  • 打赏
  • 举报
回复
假设 学生成绩表为students (学生学号为 stuNO, 学期为 semester, 平均分为 avgMark)
1.连续排名(分数相同,排名也不同):
select students.*,row_number() over (partition by semester order by avgmark dese) as avg_rank from students
2.相同的平均分排相同位,并且不连续排名:
select students.*,rank() over (partition by semester order by avgmark dese) as avg_rank from students
3.相同的平均分排相同位,并且连续排名:
select students.*,dense_rank() over (partition by semester order by avgmark dese) as avg_rank from students

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧