【orcale语法】ROW_NUMBER() OVER()函数的用法

本文详细介绍了Oracle中的ROW_NUMBER()OVER()函数的使用方法,包括语法、实现过程以及注意事项。重点讲解了如何利用partitionby进行分组并结合orderby进行排序,强调了over()函数与groupby的区别以及排序规则。
摘要由CSDN通过智能技术生成

Oracle 中 ROW_NUMBER() OVER()函数的用法

一、语法
row_number() over( partition by 分组列 order by 排序列 desc )
二、语法实现过程
即先根据分组列进行一遍分组并且排序,然后对分组内根据排序列进行排序
select id, name, classid, score, row_number() over(partition by classid order by score desc) rank from Students;
在这里插入图片描述
在上表中CLASSID为分组列排序,排完序后在根据成绩做组内排序并且将结果赋值给RANK;
三、注意事项
1.parttion by 是 Oracle 中分析性函数的一部分,用于给结果集进行分区,它和聚合函数 group by不同的地方在于它只是将原始数据进行名次排列,能够返回一个分组中的多条记录(记录数不变),而 group by是对原始数据进行聚合统计,一般只有一条反映统计值的结果(每组返回一条)。
2.over() 必须有 ORDER BY 语句
3.分组内从 1开始排序
4.over() 中的排序字段为空,会被排到第一
在这里插入图片描述

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值