2016-11-23 46 views
1

比方說,我有這個表訂單行:如何計算MySQL中最暢銷的產品?

ORDER_LINES
- ID
- ORDER_ID
- PRODUCT_ID
- 數量

它包含了所有包含quanti的每個訂單的行數ty x of product y

現在我想從這些訂單項中計算出哪些產品最適合銷售。我正在嘗試編寫一個能夠有效執行此操作的查詢。

也許類似這樣?這只是一個猜測。

SELECT DISTINCT product_id, COUNT(SUM(quantity)) as q FROM order_lines ORDER BY q DESC 

任何想法?

+0

當你說「最好賣」你的意思是最高數量或訂單的數量? –

+0

是的,這就是我的意思:) – Z0q

+3

這不是一個是或否的問題。你的意思是最高數量還是最高數量? –

回答

3

雖然「暢銷」是主觀的,但我會把它當作所有給定訂單中銷售量最大的產品,在這種情況下,您需要執行SUMGroup By,它會爲您提供查詢。

SELECT product_id, SUM(quantity) As MostSold 
FROM order_lines 
Group By product_id 
ORDER BY MostSold DESC 

如果你想訂購的數量最高爲每一個產品,那麼你可以去作爲,

​​
+0

謝謝,這個作品! – Z0q

+0

我組合了這兩個查詢按數量先訂購,然後再按訂單數量排序。 – Z0q