2015-03-03 142 views
0

我在我的數據庫架構三個表:計算平均消費(消費金額/人)在某月的MySQL

items (itemID: integer, description: string, price: integer) 
orders (orderID: integer, itemID: integer, aID: integer, customerID: integer, date: date) 
customers (customerID: integer, fName: string, lName: string) 

我需要計算的金錢所有客戶在給定的平均花費月(在2013年3月1日到2013年3月31日之間),這是花費的總金額/客戶總數, 要做到這一點我需要計算這些日期之間購買的所有產品的價格總和(使用itemID在訂單和價格的項目),我這樣做了這個代碼:

SELECT SUM(price) FROM items WHERE itemID IN(SELECT itemID FROM orders WHERE date BETWEEN '2013-03-01' AND '2013-03-31') 

但我無法弄清楚如何將這個數字除以客戶總數(可以通過計算客戶表上的客戶數量發現 - 唯一的關鍵是客戶ID)

任何人都可以幫忙嗎? 謝謝!

+0

你怎麼知道客戶是一個月後沒有啓動? – 2015-03-03 01:43:13

+0

很好的問題,但我不知道..這是從我的學校給定的一組數據,我認爲我們假設這組客戶是固定的 – mar 2015-03-03 01:51:14

回答

0

您可以使用子查詢:

SELECT SUM(i.price)/(SELECT COUNT(*) FROM customers) 
FROM items i 
LEFT JOIN orders o ON i.itemID = o.itemID 
        AND o.date BETWEEN '2013-03-01' AND '2013-03-31' 
WHERE o.itemID IS NOT NULL