ive пытался решить эту проблему в течение часа или около того и просто не мог понять это. Может кто-нибудь указать мне в правильном направлении, пожалуйста? Я работаю с данными из схемы OE с Oracle SQL Developer.Расчет процентной скидки на Oracle SQL Developer
Мне нужно показать название товарной категории для продуктов, которые имеют самую большую скидку% от list_price.
Это мой код:
SELECT ct.category_name, ROUND((pi.list_price pi.min_price)*100/pi.list_Price) AS Percent_Discount
FROM oe.product_information pi JOIN oe.categories_tab ct ON pi.category_id = ct.category_id
GROUP BY ct.category_name, ROUND((pi.list_price-pi.min_price)*100/pi.list_Price)
ORDER BY ROUND((pi.list_price-pi.min_price)*100/pi.list_Price) desc;
Here is an image of my results of the query
Результатов на самом деле пройти весь путь вниз к 150ish или около того, который включает в себя каждый отдельном продукт.
Мой вопрос: Как я могу получить его, поэтому мое процентное число составляет два десятичных знака вместо того, чтобы округлить его до целого числа? Я понимаю, что использовал круглый оператор, но я сделал это только потому, что без него цифры составляют около 15 цифр. Также, как вы думаете, мой код правильно отвечает на проблему? Я чувствую, что должен показывать только 10 или 20 наименований категорий с самой большой скидкой. В любом случае, я могу сделать это, а не перечислять их все?
Еще раз спасибо! Как раз для пояснения, максимальная заявка используется для ответа на самую большую% скидку на вопрос? И я не совсем понимаю, почему вы использовали только «2» в части ORDER BY, не могли бы вы объяснить, что один для меня? –
@KurtLee. , , 'Max()' отвечает на «наибольшую% скидку». «2» на самом деле является просто сокращением, потому что я не хотел набирать 'Percent_Discount'. –