计算特定月份mysql的平均支出(花费/人数)

时间:2015-03-03 00:56:50

标签: mysql sql math sum division

我的数据库中有三个带有架构的表:

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-03-01和2013-03-31之间)花费的平均金额,即总消费金额/总客户数, 要做到这一点,我需要计算在这些日期之间购买的所有产品的价格总和(使用订单中itemID和商品价格中的信息),我使用此代码执行此操作:

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

但我无法弄清楚如何将这个数字除以客户总数(可以通过计算客户表上的客户数量来找到 - 唯一的关键是customerID)

有人可以帮忙吗? 谢谢!

1 个答案:

答案 0 :(得分: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