Получите самые большие скидки, используя SQL-запрос

77
9

У меня много продуктов в моем столе. Некоторые продукты имеют скидку, поэтому в поле price_old предоставляется старая цена продукта, а в поле price есть новая цена со скидкой.

Можно ли получить все продукты, устраиваемые самой большой разницей (скидкой) между полями price_old и price?

спросил(а) 2016-03-04T09:32:00+03:00 5 лет, 3 месяца назад
1
Решение
77

Вы можете сделать что-то вроде:

SELECT *
FROM products
ORDER BY price_old - price DESC

price_old - price будет возвращена запись с самой большой price_old - price разницей, за которой следует запись, имеющая вторую самую большую разницу и т.д.

ответил(а) 2016-03-04T09:33:00+03:00 5 лет, 3 месяца назад
45

select 
*, old_price-price discount, (old_price-price)/old_price percent
from
product
order by
discount
desc;

место со скидкой можно заменить процентом, чтобы показать процент скидки.

ответил(а) 2016-03-04T09:47:00+03:00 5 лет, 3 месяца назад
45

Может быть, вы можете так использовать, чтобы узнать, сколько скидок было

  Select *, (price_old-price) as diff from tablename order by diff desc 

ответил(а) 2016-03-04T09:46:00+03:00 5 лет, 3 месяца назад
45

Я думаю, вам нужен order by biggest discounted product. И вам нужно найти скидку% для этого.

Я не нахожу ответа на сценарий, поэтому я размещаю его здесь:

SELECT 
*,
((price_old - price)/price_old)*100 as 'Discount (%)'
FROM products
ORDER BY 2 DESC

ответил(а) 2016-03-04T09:43:00+03:00 5 лет, 3 месяца назад
45

select product,price,price_old
from table_name
order by (price_old-price) desc

ответил(а) 2016-03-04T09:37:00+03:00 5 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема