【问题标题】:ORACLE SQL SELECT ONE Row with the MAX() value on a column [duplicate]ORACLE SQL SELECT ONE Row with the MAX() value on a column [重复]
【发布时间】:2017-06-29 12:09:00
【问题描述】:

我的问题要求我“显示总价最高的交易的 trade_id、stock_id 和总价。

我只需要使用一张表,那就是交易表。

目前我有:

select trade_id,stock_id,max(price_total)
from trade
group by trade_id, stock_id;

我需要获取最高行的交易(我知道 trade_id、stock_id 和总价格),但我的查询显示的行范围很广,我只需要 1 行,即最高的行price_total 和它对应的 stock_id 和 trade_id。有谁知道如何只获取询问的 1 行。

P.S:我知道它是哪一行,但我似乎无法仅在查询结果中返回该行。谢谢!

【问题讨论】:

  • 尝试使用HAVING 子句。
  • 当两笔或多笔交易并列以获得最高总价时,该要求说明了什么? (顺便说一句,如果要求对此保持沉默,那么这是一个糟糕的要求。)
  • 在 Google 中尝试 stackoverflow oracle select row with max value,您会找到所有可能的解决方案(以及许多不可能的解决方案)。学会为自己做一些研究。
  • 我尝试了 google 和 stack verflow,但我的搜索返回了硬编码和与我搜索的内容无关的问题。

标签: sql oracle greatest-n-per-group


【解决方案1】:

下面的查询会给你想要的结果...检查

选择 * 从 (选择 trade_id,stock_id,max(price_total) 作为 max_price_total 来自贸易 按 trade_id、stock_id 分组 按 3 desc 排序) 其中rownum = 1;

【讨论】:

    猜你喜欢
    • 2020-06-12
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多