0

我试图在我的表中找到最昂贵的订单,我已经做到了,但我想知道如何只返回这一特定行。现在,它将所有最昂贵订单的行都放在顶部。我不太确定如何只退回最昂贵的订单。我已按订单号 ( order_numb) 对订单进行了分组。我试过使用IN和自我加入,但我似乎无法让它工作。

我的桌子

在此处输入图像描述

我当前返回正确结果的查询,只是返回所有行

SELECT order_numb, sum(cost_each) as totalSum
FROM order_lines 
GROUP BY order_numb
ORDER BY totalSum DESC

我想要达到的目标

我正在尝试自己检索最昂贵的订单。

我使用 Oracle 作为我的数据库。

4

1 回答 1

2

用于ROWNUM过滤结果集的第一行(最昂贵的顺序):

SELECT t.*
FROM (
  SELECT order_numb, sum(cost_each) as totalSum 
  FROM order_lines 
  GROUP BY order_numb 
  ORDER BY totalSum DESC
) t
WHERE ROWNUM <= 1
于 2012-10-13T17:10:43.830 回答