如何实现组内排名

yugiant 2010-03-22 04:46:18
编号 组 数量 组内排名
001 甲 100
002 甲 120
003 乙 120
004 甲 101
005 乙 100
006 丙 100
007 甲 100
008 乙 105
如何根据数量实现在组内的排名
...全文
98 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yugiant 2010-04-01
  • 打赏
  • 举报
回复
如果要update组内排名这个字段该如何写,需要select后放在cursor中然后循环update吗
望指教,谢谢
duqiangcise 2010-03-22
  • 打赏
  • 举报
回复
不错!鉴定完毕!
心中的彩虹 2010-03-22
  • 打赏
  • 举报
回复

select 编号,组,数量,row_number() over(partition by 组 order by 数量) as 组内排名
from table
Phoenix_99 2010-03-22
  • 打赏
  • 举报
回复
select 编号,组,数量,rank () over (partition by 组 order by 数量 desc) 组内排名 from table;
dawugui 2010-03-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 yugiant 的回复:]
编号 组 数量 组内排名
001 甲 100
002 甲 120
003 乙 120
004 甲 101
005 乙 100
006 丙 100
007 甲 100
008 乙 105
如何根据数量实现在组内的排名
[/Quote]
select * , row_number() over(partition by 组 order by 数量 desc) 组内排名 from tb
tangren 2010-03-22
  • 打赏
  • 举报
回复
row_number():生成唯一序号,如1,2,3,4,5,就算order的值相同,但序号也不同
rank():跳跃排序, 允许并列名次,如有两个第一名,则接下来是第三名
dense_rank():连续排序,允许并列名次,如有两个第一名,则接下来还是第二名
tangren 2010-03-22
  • 打赏
  • 举报
回复
使用分析函数row_number(),rank(),dense_rank()等
select 编号,组,数量, rank() over (partition by 组 order by 数量) 组内排名 from test
suiziguo 2010-03-22
  • 打赏
  • 举报
回复
select 编号,组,数量,rank () over (partition by 组 order by 数量 desc) 组内排名 from table;

17,377

社区成员

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

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