gpt4 book ai didi

sql - 如何在 ORACLE 中使用 ROWNUM 进行最大排序和另一个最小排序?

转载 作者:行者123 更新时间:2023-12-02 09:36:38 25 4
gpt4 key购买 nike

目前我正在尝试输出 2 个条件的顶行。一个是最大,一个是最小。当前代码

Select * 
from (MY SELECT STATEMENT order by A desc)
where ROWNUM <= 1

更新我现在能够满足这两种情况。但我需要 A 是最高的,如果相同则检查 B 最低。

例如,假设有 2 行,其中 A 为 100,B 为 50,另一行为 60。在这种情况下,应选择 100:50,因为 A 相同,B 最低。

例如假设有 2 行,A 的一行为 100,另一行为 90,因为其中一行较高,因此无需检查 B。

我尝试使用 max 和 min,但这种方法似乎效果更好,有什么建议

最佳答案

好吧,在您澄清之后,您正在寻找一条记录。具有最大A。和最小的B,以防有多个具有MAX A的记录。这很简单:

Select * 
from (MY SELECT STATEMENT order by A desc, B)
where ROWNUM = 1;

首先按 A 降序排序,因此您首先获得所有最大的 A 记录。然后按 B 排序,因此在每个 A 组中,首先得到最少的 B。这首先会为您提供所需的 A 记录,无论找到的 A 是否唯一。

关于sql - 如何在 ORACLE 中使用 ROWNUM 进行最大排序和另一个最小排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25481256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com