comeon2518 2024-09-05 21:28 采纳率: 0%
浏览 6

求ORACLE的一个SQL,获取某字段最大值的所有行

Oracle数据库有如下表:
Name Num Value
A 1 a11
A 1 a12
A 2 a21
A 2 a22
A 3 a31
A 3 a32
A 3 a33
B 1 b11
B 1 b12
B 2 b21
B 2 b22
B 3 b31
B 3 b32
B 3 b33
B 4 b41
B 4 b42
C 1 c11
C 1 c12
C 2 c21
C 2 c22

现在需要用一个SQL语句得到如下结果(查询出A和B的Num最大值的所有行):
Name Num Value
A 3 a31
A 3 a32
A 3 a33
B 4 b41
B 4 b42

  • 写回答

2条回答 默认 最新

  • Roc-xb 后端领域优质创作者 2024-09-06 00:06
    关注

    参考:你可以使用 Oracle 的子查询和窗口函数来实现这个需求。以下是一个示例 SQL 语句:

    SELECT Name, Num, Value
    FROM (
        SELECT Name, Num, Value,
               MAX(Num) OVER (PARTITION BY Name) AS MaxNum
        FROM your_table
    )
    WHERE Num = MaxNum
    AND Name IN ('A', 'B');
    

    说明:

    • MAX(Num) OVER (PARTITION BY Name):这是一个窗口函数,用于计算每个 Name 分组中的最大 Num 值。
    • 子查询会为每一行添加一个 MaxNum 列,表示该 Name 分组的最大 Num 值。
    • 外层查询通过 WHERE Num = MaxNum 筛选出具有最大 Num 值的行。
    • AND Name IN ('A', 'B'):确保只查询 AB 的数据。

    your_table 替换为你的实际表名即可。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月5日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?