2016-03-04 48 views
0

我的桌子上有很多產品。有些產品有折扣,所以在price_old字段中給出產品的舊價格,並且price字段有新的折扣價格。使用sql查詢獲得最大折扣

是否有可能獲得所有產品,按照price_oldprice之間的最大差異(折扣)排列?

+0

最大的價值或百分比? – Shaharyar

回答

2

你可以這樣做:

SELECT * 
FROM products 
ORDER BY price_old - price DESC 

具有最大price_old - price差的記錄將先返回,接着具有第二最大的區別記錄等

+0

我可以在這裏添加一些額外的'WHERE'條件嗎?謝謝! – Gediminas

+1

@Gediminas當然可以。過濾後的結果集將按價格的差異進行退貨。 –

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

我認爲你需要order by biggest discounted product。你需要找到折扣%。

我不覺得覆蓋的場景,所以我在這裏張貼任何一個答案:

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

可能是你可以使用這樣,看看有多少折扣是

Select *, (price_old-price) as diff from tablename order by diff desc 
0
select 
    *, old_price-price discount, (old_price-price)/old_price percent 
from 
    product 
order by 
    discount 
desc; 

折扣的地方可以用百分比代替以顯示折扣百分比。