Найти самый дорогой заказ

Я пытаюсь найти самый дорогой заказ в своей таблице, и я достиг этого, но я хотел бы знать, как просто вернуть эту одну конкретную строку. Прямо сейчас получается все ряды с самым дорогим ордером вверху. Я не совсем уверен, как вернуть только самый дорогой заказ. Я сгруппировал заказы по номеру заказа (order_numb). Я пытался использовать IN и само присоединение, но я не могу заставить его работать.

Мой стол

введите описание изображения здесь

Мой текущий запрос, который возвращает правильный результат, просто он возвращает все строки

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

Чего я пытаюсь достичь

Я пытаюсь получить самый дорогой заказ самостоятельно.

Я использую Oracle в качестве базы данных.

1 ответ

Решение

Использование 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
Другие вопросы по тегам