Найти самый дорогой заказ
Я пытаюсь найти самый дорогой заказ в своей таблице, и я достиг этого, но я хотел бы знать, как просто вернуть эту одну конкретную строку. Прямо сейчас получается все ряды с самым дорогим ордером вверху. Я не совсем уверен, как вернуть только самый дорогой заказ. Я сгруппировал заказы по номеру заказа (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