找到最昂贵的订单

时间:2012-10-13 17:07:59

标签: sql oracle top-n

我正在尝试在我的桌子中找到最昂贵的订单,我已经实现了这一点,但我想知道如何返回这一个特定的行。现在,它在顶部以最昂贵的顺序转换所有行。我不太确定如何退回最昂贵的订单。我按订单号(order_numb)对订单进行了分组。我尝试过使用IN和自我加入,但我似乎无法让它发挥作用。

我的表

enter image description here

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

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

我想要实现的目标

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

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

1 个答案:

答案 0 :(得分: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