Oracle SQL查询每组中某个字段最大的那笔资料

本文介绍了如何使用Oracle SQL查询每个part_no分组中VER值最大的记录。提供了两种方法,一种是利用max() over(partition by)窗口函数,另一种是通过子查询和条件比对实现。示例中展示了如何获取part_no为0899020234和0805260612,VER为2的记录。
摘要由CSDN通过智能技术生成

实例说明: table 中的资料如图所示:


需要查询出所有part_no,ver 值更大的那笔资料。以上图的table数据为例,需要SQL语句一次性查询出part_no: 0899020234 ver:2 和part_no:0805260612 var:2 的这两笔数据。

有两种方法可以实现:

第一种,用 max(VER) over( partition by PART_NO) xx  方法,先以part_no 做为区分(相当于group by part_no),在从区分后的数据中得到最大的VER,给它命名 xx 字段。

在外层通过比对VER字段和xx字段即可.

具体SQL 如下:

select 
PART_NO,N_WEIGHT_U,N_WEIGHT_UNIT, N_RATE,VER
from (
SELECT  DISTINCT PART_NO,
N_WEIGHT_U,
N_WEIGHT_UNIT,
N_RATE,
VER,
max(VER) over( partition by PART_NO) xx 
FROM EC_SP_PART_A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值